Come configurare zsh con oh-my-zsh per mantenere la cronologia di git visibile dopo aver premuto "q"?


1

Uso zsh con oh-my-zsh su base giornaliera ma c'è una piccola cosa che mi disturba. Se uso git logo qualsiasi altro comando simile, l'output occupa l'intera finestra del terminale. Dopo aver premuto ql'output viene cancellato e torno al mio prompt.

Vorrei che l'output rimanesse sullo schermo. Cosa potrei configurare per raggiungere questo obiettivo?

Un'immagine vale più di mille parole, quindi ecco una gif del comportamento attuale:

inserisci qui la descrizione dell'immagine

Ed ecco il mio .zshrc:

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

Risposte:


4

Guarda cosa hai configurato sotto core.pager. Probabilmente hai impostato su lesssenza il -Xflag impostato. Avere quel flag impostato eviterà lessdi cancellare lo schermo all'uscita.

In tal caso, vai ~/.gitconfige modifica pagernella [core]sezione. Ho impostato il mio -FRSX.

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

E per tua comodità, questo è dalla lesspagina man che descrive cosa significa ciascuna di quelle bandiere:

   -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.

3

Per impostazione predefinita e in base al ~/.gitconfigfile, git utilizzerà un cercapersone per impostazione predefinita per l'output di git loge git diffecc.

Per disabilitare questo comportamento è possibile utilizzare l' --no-pageropzione:

git --no-pager log


2
Grazie, questo è davvero utile , ma in realtà mostra tutta la storia in una sola volta invece della soluzione fornita da @ junior-citizen
Dominik Roszkowski
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.