我正在使用 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
来自文档 %~
扩展为目录名称,但使用~
代替$HOME
.%1~
表示仅使用名称的最后 1 个部分。
所以只需1
删除'\e]2;%n@%m %1~\a'