マンページには、less
行編集(検索文字列の入力など)を実行するとき、およびを使用してCtrlLeftカーソルをCtrlRight1つの単語に移動できることが示されています。
^LEFTARROW [ ESC-b or ESC-LEFTARROW ]
(That is, CONTROL and LEFTARROW simultaneously.) Move the
cursor one word to the left.
これを試みると、端末から送信された制御シーケンスの印刷表現が入力されます。とCtrlLeft入力しESC[1;5D
、Ctrl - 右を押してを入力しますESC[1;5C
。
私のターミナルはそれぞれと^[[1;5D
を送る^[[1;5C
ように設定されており、それをターミナルに入れてシェルに入ると、Readlineはベットジャンプを行います。CtrlLeftCtrlRight~/.inputrc
# Ctrl-Left
"\033[1;5D": backward-word
# Ctrl-Right
"\033[1;5C": forward-word
おそらくless
他の制御シーケンスを期待していますか? VimやReadlineに問題が発生するかどうか、ターミナルから送信されたエスケープシーケンスを変更するのは少し躊躇しますが、less
試してみたいです。
答え1
シーケンスが「単語の右側」で\e[1;5D
実行されるようにキーバインディングをlessに設定します。word-left
\e[1;5C
ファイルに~/.lesskey
以下を追加します。
#line-edit
\e[1;5D word-left
\e[1;5C word-right
#line-edit
セクションがすでに存在する場合は、必要な行を追加します。
その後実行lesskey
。コンパニオンプログラムは、(人間が読める構文で)使用されたバイナリ形式に変換します~/.lesskey
。~/.less
less