zsh에서 더 긴 xterm 헤더를 갖는 방법

zsh에서 더 긴 xterm 헤더를 갖는 방법

zsh 5.3을 사용하고 있습니다. 나는 보았다https://wiki.archlinux.org/index.php/Zsh#xterm_title그리고 그것을 사용하기로 결정했습니다 -

~/.zshrc

autoload -Uz add-zsh-hook

function xterm_title_precmd () {
    print -Pn '\e]2;%n@%m %1~\a'
}

function xterm_title_preexec () {
    print -Pn '\e]2;%n@%m %1~ %# '
    print -n "${(q)1}\a"
}

if [[ "$TERM" == (screen*|xterm*|rxvt*) ]]; then
    add-zsh-hook -Uz precmd xterm_title_precmd
    add-zsh-hook -Uz preexec xterm_title_preexec
fi

잘 작동하고 제 역할을 잘 수행하지만 제대로 수행되지는 않습니다. 예를 들어 다음과 같습니다.

shirish@think-debian prompts

바꾸다

shirish@thnk-debian /usr/share/zsh/functions/Prompts

이것이 전체 경로가 됩니다. 나는 그것이 유익하다는 것을 이해하지만, 특히. 노트북이나 화면 크기가 더 작은 장치를 사용하는 경우 데스크톱에서는 전체 경로가 표시됩니다.

내가 어떻게 할 수 있는지 아는 사람 있나요?

인쇄물에서 변경해야 할 사항이 무엇인지는 알고 있지만 무엇입니까?

function xterm_title_precmd () {
        print -Pn '\e]2;%n@%m %1~\a'
    }

    function xterm_title_preexec () {
        print -Pn '\e]2;%n@%m %1~ %# '
        print -n "${(q)1}\a"
    } 

답변1

~에서문서 %~디렉토리 이름으로 확장되지만 이름의 마지막 1부분만 사용하려면 ~대신 를 사용합니다 $HOME.%1~

그러니까 그냥 1삭제해'\e]2;%n@%m %1~\a'

관련 정보