web-dev-qa-db-ja.com

「q」を押した後にgit履歴を表示したままにするためにoh-my-zshでzshを構成するにはどうすればよいですか?

私は日常的にoh-my-zshと一緒にzshを使用していますが、気になる小さなことがあります。 git logまたは他の同様のコマンドを使用すると、出力はターミナルウィンドウ全体を占めます。押した後 q 出力がクリアされ、プロンプトに戻ります。

出力を画面に表示したままにします。これを実現するために何を構成できますか?

写真は千の言葉の価値があるので、これが現在の振る舞いのgifです:

enter image description here

そして、これが私の.zshrcです。

plugins=(
  gitfast docker osx web-search cp
)
ZSH_THEME="powerlevel9k/powerlevel9k"
1

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.
4
Junior Citizen

デフォルトでは、~/.gitconfigファイルに応じて、gitはgit loggit diffなどの出力にポケットベルを使用します。

この動作を無効にするには、--no-pagerオプションを使用できます。

git --no-pager log
3
rhabbachi

以下の手順に従ってください。

  1. ターミナルにvi ~/.gitconfigと入力するだけです。
  2. LESS="-F -X $LESS"行を貼り付けます。
  3. :wqを押して入力します。
  4. ターミナルを再起動します。
0
user1122220