web-dev-qa-db-ja.com

-Sを減らして小さい増分で水平スクロール

HTTPアクセスログを解析するためにlessを使用しています。すべてを1行できれいに表示したいので、-S

私が抱えている問題は、端末ウィンドウの最初の3分の1が、気にしないメタデータで占められていることです。矢印キーを使用して右にスクロールすると、気になる情報の先頭を過ぎてスクロールしてしまうことがわかりました。

各行の先頭を削除するだけで済みますが、将来そのデータが必要になるかどうかはわかりません。ログを表示するたびに個別のファイルを保持したりスクリプトを実行したりする必要はありません。

この行:

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

スクロールします:ng/URL"

質問

文字単位または単語単位で、少しずつスクロールできる方法はありますか?

26
Mike

唯一の水平スクロールコマンドは画面全体の半分ずつスクロールしますが、数値引数を渡して文字数を指定できます。タイピング 4Right 右に4文字スクロールします。 Lessは実際には「現在の行」の概念を持たず、行を単語に分割しないため、一度にWordでスクロールする方法はありません。

固定文字数でスクロールするコマンドを定義できます。たとえば、必要な場合 Shift+Left そして Shift+Right 一度に4文字ずつスクロールするには:

  1. これらのキーの組み合わせに対して端末が送信する制御シーケンスを決定します。端末は、ファンクションキーとキーコードのエスケープ文字(さまざまなコンテキストで\e\033^[と書き込めます)で始まる一連のバイトを送信します。押す Ctrl+VShift+Left シェルプロンプト:シェルで処理されるのではなく、文字どおりにエスケープ文字を挿入し(画面に^[と表示されます)、残りのエスケープシーケンスを挿入します。一般的なセットアップには Shift+Left そして Shift+Right\eO2D\eO2Cをそれぞれ送信します。

  2. ~/.lesskeyというファイルを作成し、次の行を追加します(端末が異なるエスケープシーケンスを送信するかどうかを調整します)。

    #command
    \eO2D noaction 4\e(
    \eO2c noaction 4\e)
    

    次に、lesskeyを実行します。これにより、人間が読める~/.lesskeyが、開始時にlessが読み取るバイナリファイル~/.lessに変換されます。

オプション「-#」を使用して、水平スクロールの列数を設定できます。

Manページから:

-#または--shift
RIGHTARROWおよびLEFTARROWコマンドで水平にスクロールするデフォルトの位置数を指定します。指定された数がゼロの場合、デフォルトの位置数は画面幅の半分に設定されます。

例(水平スクロールを10列に設定):

less -S-#10 my_file

21
Rikard

スクロールする列の数である数値を入力し、矢印キーを押します。

出典: 便利な `less`関数のリスト

9
Mike

代わりの方法は、mostポケットベルを使用することです。

mostでは、no-wrap(-S)がデフォルトであり、 Right 画面の半分ではなく、1列右にスクロールします。使用する > または Tab より速くスクロールします。

別の選択肢はw3m使用可能なページャー(これも最高のターミナルWebブラウザーの1つ) <、 > 同様に、そして ,、 . より細かいスクロール(qwertyキーボードの同じキー)。

2