Guake의 zsh에서 명령을 실행할 때 추가 출력

Guake의 zsh에서 명령을 실행할 때 추가 출력

zsh 쉘에는 다음과 같은 문제가 있습니다. 명령 프롬프트에서 명령을 누르면 두 번째 줄에서 반복되고 정규화되지 않은 문자도 포함됩니다.

명령 프롬프트 스크린샷

Guake에서 zsh를 실행 중입니다. 이 내 꺼야 .zshrc:

용어="화면-256color"

# install zsh antigen
source /usr/share/zsh-antigen/antigen.zsh

# Load the oh-my-zsh's library.
antigen use oh-my-zsh

# Bundles from the default repo (robbyrussell's oh-my-zsh).
antigen bundle debian
antigen bundle autojump
antigen bundle cp
antigen bundle colorize
antigen bundle command-not-found
antigen bundle git
antigen bundle zsh-users/zsh-syntax-highlighting
# Set Home for VirtualEnvWrapper
export WORKON_HOME="$HOME/.config/virtualenv"
antigen bundle virtualenvwrapper
antigen bundle tmux
antigen bundle littleq0903/gcloud-zsh-completion

# Tell antigen that you're done.
antigen apply



# using system powerline
source /usr/share/powerline/bindings/zsh/powerline.zsh
export MANPAGER="/bin/sh -c \"col -b | vim -c 'set ft=man ts=8 nomod nolist noma' -\""

어떤 것이 문제를 일으키는지 확인하기 위해 한 줄씩 삭제하기 시작했습니다. 나는 그것이 "oh-my-zsh를 사용하는 항원"이라고 믿습니다.

또 다른 문제점: 많은 노력을 했지만 tmux.conf효과가 없었습니다. 유일하게 효과가 있었던 것은 이것과 입니다 tmux=tmux -2.

답변1

이러한 문제는 뭔가가 인쇄해서는 안 되는 내용을 표준 출력으로 인쇄할 때 발생하며, 따라서 일반적으로 Zsh 라인 편집기의 프롬프트나 명령 출력을 엉망으로 만듭니다. 문제의 인쇄는 사용자 명령이 실행될 때 행 편집기에 의해 실행되는 후크 기능에 의해 수행될 수 있습니다. 후크 함수 본문을 검색하여 문제가 있는 인쇄/에코 호출을 찾을 수 있습니다.

whence -f precmd $precmd_functions preexec $preexec_functions

다음은 다음에 문서화된 후크 기능입니다.http://zsh.sourceforge.net/Doc/Release/Functions.html#Hook-Functions.

이전 설명에서 언급했듯이 문제의 print/echo 호출은 표준 출력으로 인쇄하는 대신 터미널과 통신하려는 시도가 실패했을 수 있습니다. 일반적으로 다음과 같은 방법으로 문제가 있는 코드 줄을 "제외"합니다.

if [[ $TERM != guake ]]; then
    print -n "\E]..."
fi

그러나 Guake는 TERM을 올바르게 설정하지 않은 것 같습니다. 어떤 터미널이 실행 중인지 감지하는 다른 방법을 알아낼 수 있기를 바랍니다. 아니면 .zshrc에서 이러한 함수와 함수 배열을 지우거나 수정할 수도 있습니다.

관련 정보