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

dot*_*hen 7 linux root vim

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

如果我知道要查找的内容,我会在精美的手册中的何处找到这些信息。一个简单的:help .vim:help .vimrc没有找到有关使用整个目录的信息.vim/-U仅用于.vim文件)。

谢谢。

小智 14

似乎VIMINITVIMRUNTIME并没有像 akira 所说的那样使用。

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

search hit BOTTOM, continuing at TOP
Error detected while processing VIMINIT:
E486: Pattern not found: home
Run Code Online (Sandbox Code Playgroud)

VIMRUNTIME通常指向 vim 的基本支持文件的安装位置,例如/usr/share/vim/vim73,因此如果它被重定向到 /home/user/.vim,vim 将丢失许多基本功能,除非您的 vim 刚刚安装到 /home/usr/.vim。


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

根据:help runtimepathruntimepath将搜索支持文件的路径,因此我们可以在启动时使用选项在获取 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'
Run Code Online (Sandbox Code Playgroud)

附:或者,两个简单的符号链接也可能适合您。

mv /root/.vimrc{,.bak}
mv /root/.vim{,.bak}
ln -s /home/user/.vimrc /root/
ln -s /home/user/.vim /root/
Run Code Online (Sandbox Code Playgroud)

  • 更好的是,您可以按照相同命令中的指示修改运行时路径:`VIMINIT=":set runtimepath^=/home/user.vim|:source /home/user/.vimrc"`。它对我来说就像一个魅力!:) (3认同)
  • 感谢您的回答,我遇到了您遇到的 E486 错误的确切问题。但是您的回答让我想到:难道不能设置`VIMINIT=":source /home/user/.vimrc"` 就可以了?至少,它似乎对我有用...... (2认同)

aki*_*ira 0

使用环境变量VIMINIT指向 right.vimrcVIMRUNTIME指向 right.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'
Run Code Online (Sandbox Code Playgroud)

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

要详细了解如何vim启动以及幕后发生的事情,请阅读:help initialization