lesskey: less に Alt+右キーバインディングを追加

lesskey: less に Alt+右キーバインディングを追加

cat -vte+を押したときにターミナルエミュレータが送信したエスケープコードを見たことがあります。altright

❯ cat -vte 
^[[1;3C

その後、lesskeyファイルにこのエスケープコードを追加しました~/.less

\e[1;3C  forw-scroll

最後に、次を開始しますless

LESSKEY=~/.less less some_file

altしかし、+を押すとright機能しません。

答え1

手動状態:

lesskeyソースファイルを生成して、独自のlessコマンドを定義できます。 [...]

環境変数の場合レカイン設定すると、lessはそれをlesskeyソースファイルの名前として使用します。それ以外の場合、lessは標準の場所でlesskeyソースファイルを探します。Unix システムでは、less は「$XDG_CONFIG_HOME/lesskey」または「$HOME/.lesskey」という lesskey ファイルを探します。。 [...]

以前のバージョンのless(v582より前)は、lesskeyプログラムによって生成されたバイナリ形式のlesskeyファイルを使用していました。もはやlesskeyプログラムを使用する必要はありません。

そして変数の定義は次のとおりですLESSKEY

LESSKEY
デフォルトの lesskey バイナリの名前です。 (「$LESSKEYIN」がある場合は使用されません。)

したがって、私が理解したのは、あなたのバージョンがLESSKEY582以降であるため、変数を定義する必要はありません。プレーンテキスト~/.lesskeyファイルだけで十分です。 (PS環境変数はで定義する必要がありますexport VARIABLE=value。)


これで、次の設定を使用して正常に機能しましたAlt(コマンドをRight arrow使用した後ですが必要ありません)。~/.lesskeylesskey

#command
^[[ forw-scroll

...しかし、他の矢印キーでも動作します。


矢印キーの代わりに文字をバインドできます。既存の機能をオーバーライドできることを覚えておいてください。

動作しないmキャラクターを選択したとしましょう。^[\krまず、次のようにして8進数値を見つけます。

$ echo m | od -b | head -n1 | cut -d' ' -f2
155

それから.lesskey

#command
^[\155 forw-scroll

Alt今すぐ+を押すと、m目的の結果が得られます。


less私のバージョンは551なので、バージョン590に対してテストされていません。

関連情報