临时.vimrc

临时.vimrc

有没有办法.vimrc只读取单个 ssh 会话的文件?也就是说,当我登录时,我执行一些操作,以便 vim 使用 say/tmp/myvimrc直到我注销?

我不想永久覆盖当前的 .vimrc,我只需要在登录期间每隔一段时间使用一组不同的设置。

答案1

您可以使用VIMINIT 环境变量覆盖通常的使用,.vimrc同时保留初始化过程的其他部分。 VIMINIT 应设置为一个或多个前任-风格命令(“冒号”命令;使用管道 ( |) 分隔多个命令),而不仅仅是不同初始化文件的路径。

VIMINIT='so /tmp/myvimrc'; export VIMINIT

vim whatever # uses /tmp/myvimrc, not ~/.vimrc

与使用的主要区别-u是 VIMINIT 仍然允许其他部分初始化过程要使用的(例如 system vimrcevim.vim(如果适用)等)。

答案2

假设您在/tmp/myvimrc.如果我的理解man vim是正确的,你可以使用以下命令使用这组设置启动 vim:

$ vim -u /tmp/myvimrc

因此,为了使其成为会话其余部分的选项,我将创建一个函数,将其设置为 的别名vim。因此,我会在我的文件bash中放入这样的内容:.bashrc

function vimswitch {
    alias vim='vim -u /tmp/myvimrc'
}

然后,当我想要新的 vim 设置时,我只需运行:

$ vimswitch

请注意,我不会将 myvimrc 存储在其中,/tmp因为它可以在重新启动时轻松清除。如果您使用除此之外的 shell,bash应该仍然可以,但语法可能略有不同。

答案3

当您通过 ssh 登录时,ssh 设置变量$SSH_CONNECTION。您.bashrc可以检查此变量,如果它已设置,则设置您想要的别名:

if [ -n "$SSH_CONNECTION" ]
then
        alias vim='vim -u /tmp/myvimrc'
fi

相关内容