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'

関連情報