diffコマンドの出力をUnixのマニュアルページのように見せるにはどうすればよいですか?もっと読むか、後で読むには、どこで「b」または「f」を押しますか?

diffコマンドの出力をUnixのマニュアルページのように見せるにはどうすればよいですか?もっと読むか、後で読むには、どこで「b」または「f」を押しますか?

manコマンドを使用してマニュアル(例man ls:)を読み取ると、「f」を押して下に、「b」を押して上、下から読み取ることができるページ出力が表示されます(上から移動すると仮定)。 (左から右へ読む)を選び、「q」を押して終了します。時には長い違いのリストを読みたいので、diffの出力は同じように機能したいと思いますが、出力の先頭を読むには端末を上にスクロールする必要があります。

Git diffコマンドを使用すると、この機能は気に入っていますが(たとえばgit diff)、常にすべてのファイルをバージョン管理する余裕があるわけではありません。

私が考えることができる最善の方法は、diffコマンドの出力を別のコマンドにパイプすることですが、どのコマンドかはわかりません。誰でも助けることができますか?マニュアルページのように提供されたこの出力動作には、後​​で参照できる名前はありますか?

答え1

これを「ページ出力」または(やや不正確には)「ページ出力」と呼びます。

... マンページ出力フォームを生成するために使用されたパイプの出力に基づいて、好みのフェイザーmanシェルコマンド(環境変数として命名)を呼び出してこれを行います。PAGERポケットベルコマンドを指定しないと、デフォルト値に戻ります。初期のUniceでは、デフォルトのポケットベルプログラムは、デフォルトのポケットベルmanコマンドとして知られている固定オプションで呼び出されましたpg。あなたのシステムでは、またはかもmoreしれませんless。一部のmanコマンドは pager コマンドの他の環境変数もチェックします。

あなた今やっていることをやってくださいman。つまり、ポケットベルプログラムの標準入力に見たい出力をパイプすることです。

あなたはUnixに関する良い本を買うべきです。これを説明する人はかなりありますが、これはシステムの非常に基本的な機能です。今日Google Booksで簡単に検索した結果、pager unix moreこの問題を扱った本が100冊以上見つかりました。 (私は百まで数えるのをやめました。)

答え2

manそしてプログラムアシスタントを呼び出しますgit diff携帯用小型無線ポケットベル。最新のシステムでは、デフォルトのポケットベルを呼び出します。less。数十年前、最初のポケットベルはmoreページを表示し、「詳細」を見るためにキーを押すのを待っていたので「フェイザー」と呼ばれました。それから行ってless、これはあなたを戻すようにし(言えばもっと少なく見て)、「少ない方が多い」(もっと多くより)という言葉を確認させます。

git diffいくつかの例外があります。ユーティリティdiffcvs diffサブコマンド、svn diffサブコマンドなどは、違いを計算して印刷することだけを行います。違いをページングするには、明示的にページャーを呼び出す必要があります。

diff file.old file.new | less

pagerを呼び出す他のコマンドとは異なるpagerを使用したい場合は、man環境変数をgit diff設定できますPAGER(ファイルに保存するなど)~/.profile

export PAGER=most

diff自動ポケットベルの呼び出しなどのコマンドを実行できません。ただし、ラッパー関数を作成できます(例:~/.zshrczshやbashの場合はシェル初期化ファイルに入れる~/.bashrc)。

diff () {
  if [ -t 1]; then             # If standard output is a terminal
    command "$@" | less        #    then pipe through less
  else                         # else
    command "$@"               #     run the command (and return its exit status)
  fi
}

警告:この機能は時々邪魔になることがあります。ページャーに対して 1 文字のエイリアスを作成することもできます。

alias p=less P=less

したがって、コマンド出力をページ単位で表示するには、diff … |pまたはを入力します。diff … |P

答え3

lessコマンドを使用するのはどうですか?EX:

 ls -l | less -CM

答え4

vimでdiffの内容を見ることができます。

git diff | view -

確信している:

diff -u a.txt b.txt | view -

楽しむ!

関連情報