使用其他用户的 .vimrc 和 .vim/

使用其他用户的 .vimrc 和 .vim/

我知道以 root 身份运行时可以:source /path/to/some/.vimrc加载我的用户.vimrc,但我怎样才能使用整个目录?是否有一个可以设置为别名的.vim/启动选项?/home/user/.vim/

如果我知道要查找什么,我可以在手册的哪里找到这些信息。简单:help .vim:help .vimrc没有找到有关使用整个.vim/目录的信息(-U仅适用于.vim文件)。

谢谢。

答案1

使用环境变量VIMINIT指向.vimrc右边VIMRUNTIME指向正确的.vim目录。您可以通过以下方式进行操作env

$> env VIMINIT=/home/user/.vimrc VIMRUNTIME=/home/user/.vim/ vim

$> VIMINIT='let $MYVIMRC = expand('\''~user'\'') . '\''/.vimrc'\''|source $MYVIMRC' vim -c 'set runtimepath=~user/.vim,/var/lib/vim/addons,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,/var/lib/vim/addons/after,~user/.vim/after'

与往常一样:如果输入太长,请创建一个 shell 函数或一个 shell 别名。

要了解有关如何vim启动以及幕后发生的事情的更多信息,请阅读:help initialization

答案2

看来和VIMINITVIMRUNTIME没有像akira说的那样被使用。

VIMINIT用作 Ex 命令,因此VIMINIT=/home/user/.vimrc会尝试搜索并给出如下错误:

search hit BOTTOM, continuing at TOP
Error detected while processing VIMINIT:
E486: Pattern not found: home

VIMRUNTIME通常指向 vim 的基本支持文件所安装的位置,例如/usr/share/vim/vim73,因此如果将其重定向到 /home/user/.vim,vim 将失去许多基本功能,除非你的 vim 只是安装到 /home/usr/.vim。


根据:help -u:help vimrc-u vimrc选项可以指定.vimrc文件,但会跳过大多数其他初始化文件,例如系统 vimrc,例如。/etc/vimrc如果指定的 vimrc 文件完成了几乎所有的工作,那么这个缺点(如果调用这个的话)是微不足道的。

根据:help runtimepath,路径runtimepath将搜索支持文件,因此我们可以在启动时使用选项在获取 vimrc 文件之前添加/home/user/.vim和附加/home/user/.vim/after内容。runtimepath--cmd

总而言之,我们可以设置这个别名来使用~/.vimrc 和 ~/vim:

alias vim='vim --cmd "set runtimepath^=/home/user/.vim" \
               --cmd "set runtimepath+=/home/user/.vim/after" \
               -u /home/user/.vimrc'

ps. 另外,两个简单的符号链接也可能适合您。

mv /root/.vimrc{,.bak}
mv /root/.vim{,.bak}
ln -s /home/user/.vimrc /root/
ln -s /home/user/.vim /root/

答案3

这可能是迄今为止最好的解决方案。

export MYVIMRC="/xxx/.vimrc"
export VIMINIT=":set runtimepath+=/xxx/.vim|:source $MYVIMRC"

xxx自定义路径在哪里。

相关内容