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
いくつかの例外があります。ユーティリティdiff
、cvs diff
サブコマンド、svn diff
サブコマンドなどは、違いを計算して印刷することだけを行います。違いをページングするには、明示的にページャーを呼び出す必要があります。
diff file.old file.new | less
pagerを呼び出す他のコマンドとは異なるpagerを使用したい場合は、man
環境変数をgit diff
設定できますPAGER
(ファイルに保存するなど)~/.profile
。
export PAGER=most
diff
自動ポケットベルの呼び出しなどのコマンドを実行できません。ただし、ラッパー関数を作成できます(例:~/.zshrc
zshや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 -
楽しむ!