私はいつも探求しterminfo
ていますstty
。実行してみるとstty -a|grep icanon
キャノニカルモードが設定されているようですが、オフにしてもう一度確認してみると、stty -icanon
まだ設定されていることがわかります。 Bashで同じことをすると、イカノンを無効にすることができますが、動作に何の変化も感じません。もしそうなら、2つの質問があります。 zshでicononを無効にできないのはなぜですか。可能であれば動作にどのような影響がありますか?
答え1
Bashで同じことをすると、イカノンを無効にすることができますが、動作に何の変化も感じません。
bashが正式モードに切り替えられたためです。去るユーザーコマンドを読むとき(端末ドライバが提供しない行編集機能を実装するために - テキストの挿入、矢印キーを使用してカーソルを左右に移動するなど)また覆うコマンドラインを実行するときの以前の端末設定。
効果を表示するには、次の外部コマンドを実行しますcat
。
bash$ stty -icanon
bash$ cat
hheelloo
stty echo
各キーは開かれているので一度、cat
行全体を待たずにすぐに読み書きするため、一度繰り返されます。
[zshを使用] オフにして
stty -icanon
もう一度確認すると、まだ設定されていることがわかります。
上記の以前の端末設定を復元する場合zsh
にも適用されます。合理的なデフォルト(含むecho
とicanon
設定)。おそらく、コマンドが正式モードを終了した場合は、次のように仮定するからです。去る終了後、これは単なる事故です(たとえば、フルスクリーンアプリケーションがクラッシュまたはvi
クラッシュless
した場合など)。
zsh
readlineライブラリを使用して他のプログラムと同じように動作させるオプションが見つかりませんでしたが、bash
コマンドを実行する前にicanonモードをオフにするには、同じコマンドラインで実行してこれを実行できます。
zsh$ stty -icanon; cat
hheelloo