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

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

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

我想做以下事情:

  • 在使用 ssh 时,将终端选项卡标题设置为当前工作目录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

所以我似乎被困住了。任何建议将不胜感激。先感谢您!

答案1

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

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

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

相关内容