2

每当我启动屏幕时,它会将终端窗口的标题更改为“屏幕”。如果我没有在屏幕下运行我的命令,我可以防止这种情况并让窗口标题保持原样吗?

更具体地说,我希望 gnome-terminal 显示我在 vim 中编辑的缓冲区的名称。我可以通过添加set title到我的 .vimrc 来做到这一点。现在,当我运行 vim 时,缓冲区名称(以及一些其他信息)显示在 gnome-terminal 的标题中。当我启动屏幕并运行 vim 时,标题变为“屏幕”。

我查看了以下页面:

http://beautifulpixels.blogspot.co.at/2012/01/automatic-screen-window-titles-in-bash.html

但是建议的解决方案将窗口标题放在屏幕状态行中。我也尝试添加这个:

case $TERM in
    screen*)
        # http://dtfm.tumblr.com/post/7193076007/the-sweetest-screenrc-hack-ever
        SCREENTITLE='\[\ek\e\\\]\[\ek\W\e\\\]'
        ;;
    *)
        SCREENTITLE=''
        ;;
esac

TITLEBAR='\[\e]0;\a\]'

export PS1="${SCREENTITLE}${TITLEBAR}[\u@\h \W]\$ "

到我的 .bashrc,但这只会将窗口标题设置为当前目录。即使我运行 vim,窗口标题仍然是当前工作目录。如果我在屏幕之外运行它,情况并非如此。

有任何想法吗?

4

1 回答 1

1

虽然我没有完全解决它,但娴静的评论诱使我查看了 tmux。使用它,我可以输入以下行:

autocmd BufReadPost,FileReadPost,BufNewFile * call system("tmux rename-window '" . expand("%:p:~") . " - VIM'")

在我的.vimrc文件中,我首先得到了我想要的效果(当然,现在我正在使用 tmux)。

参考:

带有文件名的 tmux 选项卡在 vim 中打开

如何扩展当前文件的完整路径以传递给 Vim 中的命令?

于 2013-05-24T09:27:43.737 回答