~によるとマンページの場合、lesskey
次のキーは左スクロールと右スクロールにバインドされています。
\e[ left-scroll
\e] right-scroll
\e( left-scroll
\e) right-scroll
\kl left-scroll
\kr right-scroll
矢印キーとEsc-(
/は右にスクロールするのと同じようにうまく機能しますEsc -)
が、左にスクロールしてもうまくいきません。代わりに、コマンドラインプロンプトにのみ表示されます。Esc-]
Esc-[
ESC[
~/.lesskey
回避策として、関数に次の行を追加してください。
\e[ left-scroll
しかし、なぜ基本的には機能しないのですか?
Debian StretchとKubuntu 18.04のXFCE4とさまざまな端末エミュレータでこの動作を観察しました。
$ less --version
less 487 (GNU regular expressions)
Copyright (C) 1984-2016 Mark Nudelman
less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
バグレポートを提出することを検討しましたが、既知のバグと機能要求のリスト これが既知の動作であることを示しています。
改善依頼
[。 。 。 ]
参照番号:175
実装バージョン:322
ESC-[の代替コマンドが追加されました。
これが実際に制限ですかless
、それとも端末がEscapeキーを処理する方法の問題ですか?
答え1
これは、またはまたは...ESC [
などの一部の端末の複数のファンクションキーによって送信される一連の文字の先頭でもあるためです。これらの機能は特定のタスクにも関連付けられています。HomeEndPageUpless
したがってless
、受信すると、ESC [
より多くの時間を待ちます(他のアプリのようにタイムアウトは発生しません)。
私の端末では、ESC[6~
をPageDown押すとあなたのように見えますAlt+[。ESC [
ただし、入力すると下6
に~
スクロールします。
TERM=vt100 less
代わりに、terminfoページless
またはエントリなしでvt100
実行すると、動作することがわかります。HomeEndESC [
ただし\e[ left-scroll
、に追加し~/.lesskey
てlesskey
コンパイルを実行すると、左にスクロールが機能しますが、すべて、...操作が停止し、すべて左にスクロールし、送信する追加の文字がビープ音になることがわかり~/.less
ます。ESC [
HomePageUP
コードを見ると、コマンドテーブルが処理される順序についてです。コマンド~/.less
のリストは次のとおりです。最後に追加しました、しかし頭を挿入そのため、対応する項目が処理されます。今後内蔵。
入力時にESC [
項目が最初に見つかった場合は処理され、項目が最初に見つかった場合に処理されます(多くの端末ではこれは次のように変換されます)。\e[ left-scroll
\kD forw-screen
\e[6~ forw-screen
これはただプレフィックスマッチとless
追加入力を待っています。
だからこれは間違いです。解決策はタイムアウトを追加することです。しかし、より短いタイムアウトを追加することは、マルチキーコマンドを放棄することを意味します。ユーザーがマルチキーコマンドを入力するのに十分な時間を提供する長いタイムアウトは、応答が遅すぎる可能性がESC [
あります。
これで、PageUp背中のある端末には通常、にもバインドされたLeftキーがあるため、スクロールに使用できます。Rightleft-scroll
right-scroll