xinput - Ctrl+history-search-backward がマップされている場合、誤動作が発生します。

xinput - Ctrl+history-search-backward がマップされている場合、誤動作が発生します。

私は以下の行を使用しています~/.inputrc:

"\e[5~": history-search-backward
"\e[6~": history-search-forward

これらの設定でcプロンプトに と入力して を実行すると、bash は履歴からPageUpで始まるコマンドのみを表示します。はその逆を行います。これは私にとって非常に生産的だと思います。cPageDown

inputrc ファイルにこれらの行がない場合、Ctrl+を実行するとLeft、カーソルは 1 単語左に移動し、Ctrl+はその逆の動作をします。ただし、上記の設定を使用すると、 +と+をLeft実行すると、代わりにとが出力されます。CtrlLeftCtrlRight;5D;5C

では、Ctrl+ Left& Ctrl+をRight正しく動作させるにはどうすればよいでしょうか?

答え1

readlineこれらの移動のための2 つのコマンドはforward-wordとですbackward-word。それぞれ (emacs のデフォルトのバインド) Altfとを使用してアクセスできますAltb

Leftキーとキーを使用して動作させるにはRight、 に数行追加する必要があります~/.inputrc

まず、端末からこれらのキー入力の生の出力を取得して、正しいエスケープ シーケンスを確認します。 と を入力しCtrlv CtrlLeftCtrlv CtrlRightシーケンス (^[Ocと のような形式^[Od) をメモします。次に、次の行を に追加します.inputrc

"\eOc": forward-word
"\eOd": backward-word

すべてのreadline コマンドあなたの中でリバウンドする可能性があります.inputrc

答え2

これらのシーケンスは端末ごとに異なる場合があることに注意してください。テキストから判断すると、gnome-terminal を使用しているようです。

# on gnome-terminal
"\e[1;5D": backward-word
"\e[1;5C": forward-word

関連情報