วิธีกำหนดค่า zsh ด้วย oh-my-zsh เพื่อให้สามารถดูประวัติ git ได้หลังจากกด“ q”


1

ฉันใช้ zsh กับ oh-my-zsh เป็นประจำทุกวัน แต่มีสิ่งเล็ก ๆ ที่รบกวนจิตใจฉัน หากฉันใช้git logหรือคำสั่งที่คล้ายกันอื่น ๆ ผลลัพธ์ที่ได้นั้นจะใช้หน้าต่างเทอร์มินัลแบบเต็ม หลังจากกดqเอาท์พุทจะถูกล้างและฉันกลับไปที่พรอมต์ของฉัน

ฉันต้องการให้ผลลัพธ์ยังคงอยู่บนหน้าจอ ฉันจะกำหนดค่าอะไรให้สำเร็จ

รูปภาพมีค่าหนึ่งพันคำดังนั้นนี่คือ gif ของพฤติกรรมปัจจุบัน:

ป้อนคำอธิบายรูปภาพที่นี่

และนี่คือ. zshrc ของฉัน:

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

คำตอบ:


4

ดูสิ่งที่คุณได้กำหนดค่าภายใต้ core.pager คุณอาจตั้งค่าไว้lessโดยไม่มีการ-Xตั้งค่าสถานะ การมีชุดค่าสถานะนั้นจะป้องกันlessการล้างหน้าจอเมื่อออก

หากเป็นเช่นนั้นให้ไปที่~/.gitconfigและแก้ไขpagerใน[core]ส่วน -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.

3

โดยค่าเริ่มต้นและขึ้นอยู่กับ~/.gitconfigไฟล์คอมไพล์ของคุณจะใช้เพจเจอร์โดยค่าเริ่มต้นสำหรับการส่งออกgit logและgit diffอื่น ๆ

หากต้องการปิดใช้งานลักษณะการทำงานนี้คุณสามารถใช้--no-pagerตัวเลือก:

git --no-pager log


2
ขอบคุณนี่เป็นประโยชน์จริง ๆ แต่จริง ๆ แล้วมันจะแสดงประวัติทั้งหมดในครั้งเดียวแทนที่จะแก้ปัญหาโดย @ junior-พลเมือง
Dominik Roszkowski
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.