
問題の説明
端末で頻繁に実行されるコマンドをキーの組み合わせにまとめたいです。このbind
コマンドは最初はうまくいったようです。
ただし、キーの組み合わせを使用すると、端末に入力した文字が表示されなくなり、Enterキーを押しても新しい行は生成されません。私の考えはポケットベルが少ないことに関連しているかもしれません。
stty --all
問題が始まる前後に実行すると、端末回線設定の違いが明らかになります。
echo
- >-echo
(echo input characters
)が閉じて、私が入力した内容はすべて表示されません。icrnl
->-icrnl
(translate carriage return to newline
)icanon
->-icanon
(enable special characters: erase, kill, werase, rprnt
)lnext = ^V
->lnext = <undef>
(CHAR will enter the next character quoted
)もうCtrl + Vを押してからEscを押してエスケープ文字を入力することはできません。flush = ^O
->flush = <undef>
(https://man.openbsd.org/stty.1#flush)
なぜこれが起こるのですか?見えない問題なくカスタム端末キーの組み合わせを使用できますか?
再生方法
lxterminal
、kitty
およびを含む複数の端末でテストしました。alpine
。
- + などのキーの組み合わせを
bind -x '"\ea":"ls"'
コマンドにバインドします。Altals
- ファイルを見る
less
- Ctrlポケットベルを終了するには+を使用してください。c
- Alt+を押しますa。これで
ls
コマンドが実行されます。 less
ファイルをもう一度見る- Ctrlポケットベルを終了するには+を使用してください。c
- Alt+を押しますa。
ls
コマンドを再実行する必要があります。それ以降に入力した文字は表示されません。
Alt+で終了してから2回目に+を押すと、この問題が発生するのか、なぜそのようなことが起こるのかわかりません。aless
Ctrlc