私は日常的にoh-my-zshと一緒にzshを使用していますが、気になる小さなことがあります。 git log
または他の同様のコマンドを使用すると、出力はターミナルウィンドウ全体を占めます。押した後 q 出力がクリアされ、プロンプトに戻ります。
出力を画面に表示したままにします。これを実現するために何を構成できますか?
写真は千の言葉の価値があるので、これが現在の振る舞いのgifです:
そして、これが私の.zshrcです。
plugins=(
gitfast docker osx web-search cp
)
ZSH_THEME="powerlevel9k/powerlevel9k"
Core.pagerで構成した内容を確認してください。おそらく、-X
フラグを設定せずにless
に設定しているはずです。そのフラグを設定すると、終了時にless
が画面をクリアするのを防ぐことができます。
その場合は、~/.gitconfig
に移動し、[core]
セクションの下のpager
を編集します。私は-FRSX
に設定しました。
$ git config --get core.pager
less -FRSX
そして、便宜上、これはless
のマニュアルページからのものであり、これらの各フラグの意味を説明しています。
-F or --quit-if-one-screen
Causes less to automatically exit if the entire file can be displayed on the first screen.
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are output in "raw" form. Unlike -r, the screen appearance is maintained correctly in most cases. ANSI "color" escape sequences are sequences of the form:
ESC [ ... m
where the "..." is zero or more color specification characters For the purpose of keeping track of screen appearance, ANSI color escape sequences are assumed to not move the cursor. You can make less think that characters other than "m" can end ANSI
color escape sequences by setting the environment variable LESSANSIENDCHARS to the list of characters which can end a color escape sequence. And you can make less think that characters other than the standard ones may appear between the ESC and the m
by setting the environment variable LESSANSIMIDCHARS to the list of characters which can appear.
-S or --chop-long-lines
Causes lines longer than the screen width to be chopped (truncated) rather than wrapped. That is, the portion of a long line that does not fit in the screen width is not shown. The default is to wrap long lines; that is, display the remainder on the
next line.
-X or --no-init
Disables sending the termcap initialization and deinitialization strings to the terminal. This is sometimes desirable if the deinitialization string does something unnecessary, like clearing the screen.
デフォルトでは、~/.gitconfig
ファイルに応じて、gitはgit log
やgit diff
などの出力にポケットベルを使用します。
この動作を無効にするには、--no-pager
オプションを使用できます。
git --no-pager log
以下の手順に従ってください。
vi ~/.gitconfig
と入力するだけです。LESS="-F -X $LESS"
行を貼り付けます。:wq
を押して入力します。