Como configurar zsh com oh-my-zsh para manter o histórico do git visível depois de pressionar "q"?

0

Eu uso zsh com oh-my-zsh diariamente, mas há uma pequena coisa que me incomoda. Se eu usar git log ou qualquer outro comando similar, a saída ocupará toda a janela do terminal. Depois de pressionar q a saída é limpa e estou de volta ao meu prompt.

Eu gostaria que a saída permanecesse na tela. O que eu poderia configurar para conseguir isso?

Uma imagem vale mais que mil palavras, então aqui está um gif do comportamento atual:

Eaquiestáomeu.zshrc:

plugins=(gitfastdockerosxweb-searchcp)ZSH_THEME="powerlevel9k/powerlevel9k"
    
por Dominik Roszkowski 30.08.2018 / 23:48

2 respostas

2

Veja o que você configurou em core.pager. Você provavelmente definiu como less sem o sinalizador -X definido. Ter esse conjunto de bandeiras impedirá que less apague a tela ao sair.

Se for esse o caso, acesse ~/.gitconfig e edite pager na seção [core] . Eu tenho o meu definido como -FRSX .

$ git config --get core.pager
less -FRSX

E, para sua conveniência, isso é da página less man descrevendo o significado de cada um desses sinalizadores:

   -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.
    
por 31.08.2018 / 21:03
3

Por padrão e dependendo do seu arquivo ~/.gitconfig , o git usará um pager por padrão para a saída de git log e git diff etc.

Para desabilitar esse comportamento, você pode usar a opção --no-pager :

git --no-pager log

    
por 31.08.2018 / 09:47