私の問題は、Bashシェルに入力した文字が表示されなくなることです。ただし、コマンドは読み取ります。
私はこの問題に何度も出くわしましたが、何が原因なのかわかりません。私はそれを解決する方法を知っていますが、問題から自分のやり方を「ブードゥーイング」しているとき、私は本当にそれが好きではありません。
この問題に遭遇した2つの方法を説明します。
私は特定のプロセス、http://pythonpaste.org/script/を実行していますが、時々それを停止したり、制御が壊れるとシェルに戻されます。その後、シェルにコマンドを入力すると、入力した文字が表示されません。Enterキーを押すと、コマンドが送信されます。たとえば、次のとおりです。
- 「ls」と入力します
- 空のプロンプトのみが表示され、それ以上何も表示されません
- Enterキーを押すと、ファイルのリストが表示されます。つまり、コマンドが実行されます。
- 「リセット」コマンドを与えると、シェルは再び正常に動作し始めます
これが起こる2番目の方法は、次のようなコマンドを入力したときです。
$ grep foo * -l | xargs vim
特定のパターンを持つファイルを見つけるためにgrepを使用し、grepの結果として生成されたすべてのファイルを開きます。これは魅力のように機能します(ただし、期待したほど高速ではありません)。しかし、Vimを終了すると、シェルに入力した文字が表示されなくなります。リセットコマンドで問題を解決します。
私の推測では、両方の問題には根本的な理由がありますが、私はその理由がどのように、または何であるかに困惑しています。
この問題の検索自体は、説明が曖昧で、厳密な検索用語がないため、問題があります。
編集
与える
stty --all
John S. Gruberのリクエストによるコマンドは、次の出力を提供しました(読みやすいように空白を編集しました)
speed 0 baud;
rows 53;
columns 186;
line = 0;
intr = <undef>;
quit = <undef>;
erase = <undef>;
kill = <undef>;
eof = <undef>;
eol = <undef>;
eol2 = <undef>;
swtch = <undef>;
start = <undef>;
stop = <undef>;
susp = <undef>;
rprnt = <undef>;
werase = <undef>;
lnext = <undef>;
flush = <undef>;
min = 0;
time = 0;
-parenb
-parodd cs8
-hupcl
-cstopb cread
-clocal
-crtscts
-ignbrk
-brkint
-ignpar
-parmrk
-inpck
-istrip
-inlcr
-igncr
-icrnl
-ixon
-ixoff
-iuclc
-ixany
-imaxbel
-iutf8
-opost
-olcuc
-ocrnl
-onlcr
-onocr
-onlret
-ofill
-ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig
-icanon
-iexten
-echo
-echoe
-echok
-echonl
-noflsh
-xcase
-tostop
-echoprt
-echoctl
-echoke
stty --all
私の質問にの出力を追加しました。前もって感謝します!
stty --all
、質問に結果を入力して入力してください。エコーは、オフにされるtty特性です。Vimは実行中にこれを行い、ターミナルもrawモードにします。終了すると、ターミナル設定自体がリセットされます。i
たとえば、vimが実行されているときは、エディターを挿入モードにするコマンドをエコーしたくありません。これらの設定は、入力したものをどのように処理するかをttyデバイスに伝えます。Vimが実行されているものの、それはなど、エコーされるべきエコーの世話をする