Zsh는 스크롤백 버퍼를 지웁니다.

Zsh는 스크롤백 버퍼를 지웁니다.

Bash를 사용하면 CtrlL화면이 지워지지만 버퍼를 뒤로 스크롤하지는 않습니다. 나는 과거에 다음을 사용하여 이 문제를 해결했습니다.

tput reset

하지만 이 명령은 Zsh를 사용하여 스크롤백 버퍼를 지우지 않는다는 것을 알았습니다. 그렇다면 어떻게 합니까?

답변1

function clear-scrollback-buffer {
  # Behavior of clear: 
  # 1. clear scrollback if E3 cap is supported (terminal, platform specific)
  # 2. then clear visible screen
  # For some terminal 'e[3J' need to be sent explicitly to clear scrollback
  clear && printf '\e[3J'
  # .reset-prompt: bypass the zsh-syntax-highlighting wrapper
  # https://github.com/sorin-ionescu/prezto/issues/1026
  # https://github.com/zsh-users/zsh-autosuggestions/issues/107#issuecomment-183824034
  # -R: redisplay the prompt to avoid old prompts being eaten up
  # https://github.com/Powerlevel9k/powerlevel9k/pull/1176#discussion_r299303453
  zle && zle .reset-prompt && zle -R
}

zle -N clear-scrollback-buffer
bindkey '^L' clear-scrollback-buffer

clear및 를 추가하여 여러 줄 프롬프트에서 작동하는지 확인하는 zle .reset-prompt && zle -R것이 중요합니다 .

인용하다

답변2

  • Cmd-K
  • 메뉴/편집하다/명확한 시작

관련 정보