web-dev-qa-db-ja.com

`bind`と` .inputrc`の動作が異なるのはなぜですか?

私は正しいことをして、キーバインディングを~/.inputrcに入れようとしています。

しかし、私は変更する必要があることが判明しました

bind '"\e\C-j":"\e[1~quiet \e[4~\n"'

"\e\C-j": "\eOHquiet \eOF\n"

現在、\eOH(nav-block-pos1はbeginning-of-lineにバインドされています)と\eOF(nav-block-endはend-of-lineにバインドされています)は、それ自体が私の構成のバインディングであり、常に信頼できるとは限りません。

したがって、主な質問は、num-block-pos1(\e[1~)およびnum-block-end(\e[4~)へのバインドがbindで機能するのに、私の~/.inputrcでは機能しないのはなぜですか?


編集:

\e\C-jはGnomeTerminial(またはおそらくxtermも知っている...)でのみ機能することに気付いたので、全体がさらに複雑になっています。

私のTTYの場合は

"\e\C-m": "\e[1~_quiet \e[4~\n"

では、さまざまなVTで、キーの解釈方法や内容が異なる実装になっているのでしょうか。

14
user173944

ターミナルエミュレータは、アプリケーションモードとカーソルモードの2つのモードのいずれかで動作できます( http://homes.mpimf-heidelberg.mpg.de/%7Erohm/computing/mpimf/notes/terminal.htmlを参照 )。送信する必要のあるエスケープシーケンスを決定するのは、特定のアプリケーションが実行されているモードによって異なります。

2
chepner