在OS X中设置终端选项卡名称并使用vim


1

我经常从OS X(El Capitan)终端进入Linux集群,有时还有多个终端选项卡。我使用bash和vim。

我想做以下事情:

  • ssh'd时,使用终端选项卡标题设置为当前工作目录 PROMPT_COMMAND='printf "\e]1;"`basename $PWD`"\a"'
  • 使用vim时,将终端选项卡标题设置为“vim - FILENAME”

这是我的问题:

  • 如果我这样做let &titlestring = "vim — " . expand("%:t")并且set title在.vimrc中,它会更改终端窗口标题,而不是标签标题。如果我没有单独设置标签标题(参数1),标签标题会反映窗口标题(参数2),但是一旦我设置标签标题,它就会与窗口标题“分离”。
  • 如果我在运行一个外部命令.vimrc里:!,我得到一个“按ENTER”对话框,很烦人。
  • 如果我:silent !.vimrc中使用,我的终端提示会在退出vim后终止于屏幕底部。我真的不想在每次想要使用vim时保存提示位置并重置它。
  • 如果我在.bashrc中定义以下函数:

    function vim
    {
        printf "\e]1;"`basename "$1"`"\a"
        vim "$1"
    }

    然后我的终端在从命令行调用时崩溃vim。调用该函数vvim可以正常工作,但我不想vvim永远键入。我想别名vim

所以我好像卡住了。任何建议将不胜感激。先感谢您!

Answers:


2

好吧,我已经解决了自己的问题。我编程101失败了。

通过将vim定义为函数然后调用vim,我设置了一个无限递归循环。难怪我的终端坠毁了。我需要调用“真正的”vim,即实际的可执行文件。这样就可以了:

function vim
{
    printf "\e]1;"`basename "$1"`"\a"
    /usr/bin/vim "$1"
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.