小さい単位で水平にスクロールするには、less -S を使用します。

小さい単位で水平にスクロールするには、less -S を使用します。

lessHTTPアクセスログを解析するために使用します。一行ですっきりとみんな見たいので使います-S

私が経験している問題は、ターミナルウィンドウの3分の1が私が気にしないメタデータで埋められていることです。矢印キーを使って右にスクロールすると、興味のあるメッセージの先頭までスクロールすることがわかりました!

各行の先頭を削除できますが、後でこのデータが必要になるかどうかわからず、一部のログを表示したいときはいつでも別々のファイルを保持したりスクリプトを実行したくありません。

はい

この行は:

access.log00002:10.0.0.0 - USER_X [07/Nov/2013:16:50:50 +0000]"GET /some/long/URL"

次にスクロールします。ng/URL"

質問

文字や単語ごとに小さい単位でスクロールする方法はありますか?

ベストアンサー1

唯一の水平スクロールコマンドは画面の半分をスクロールしますが、数値引数を渡して文字数を指定できます。たとえば、入力すると4 Right右側に4文字をスクロールします。 Lessには実際に「現在行」という概念がなく、行を単語に分割しないので、一度に1単語ずつスクロールする方法はありません。

固定数の文字をスクロールするコマンドを定義できます。たとえば、Shift+LeftShift+Rightで一度に4文字をスクロールするには、次のようにします。

  1. 端末がこれらのキーの組み合わせに対して送信する制御シーケンスを決定します。ターミナルは、ファンクションキーとキーコード(さまざまな状況で、、で\e書くことができます\033)のエスケープ文字で始まる一連のバイトを送信します。シェルプロンプトで++を^[押します。これにより、シェルがそれを処理して残りのエスケープ文字列を挿入するのではなく、文字通りエスケープ文字(画面に表示)が挿入されます。一般的な設定は+と+ sendとそれぞれです。CtrlV ShiftLeft^[ShiftLeftShiftRight\eO2D\eO2C

  2. というファイルを作成し、~/.lesskey次の行を追加します(ターミナルが別のエスケープシーケンスを送信する場合は調整)。

    #command
    \eO2D noaction 4\e(
    \eO2C noaction 4\e)
    \eOD noaction 40\e(
    \eOC noaction 40\e)
    

    Shift+のバインディングを定義することに加えて、モーションコマンドは最後の呼び出しの値を再利用するため、バインディングを別々に定義する必要があるarrowかもしれません。おなじみの端子幅にarrow調整してください。40「今、この瞬間が何であれ、もう一度端末の幅を使用してください」と言う方法はないようです。これらのバインディングの欠点は、数値引数をおよびLeftに渡すことができないことです(まだ数値引数をおよびRightに渡すことができます)。Esc (Esc )

次に、人間が読めるファイルを起動時に読み取れるlesskeyバイナリファイルに変換します。~/.lesskey~/.lessless

おすすめ記事