利用不同用户的 vimrc 以及 vim 文件夹

5 linux vim vimrc

首先,为了防止 X/Y 问题,我只想说明我真正想要的是:

  1. 以 root 用户身份运行 vim。
  2. 指示 vim 使用我漂亮的配色方案和我所有的插件。
  3. 在不污染/root/.vimrc/root/.vim文件夹的情况下执行所有这些操作。
  4. 在没有sudo vim希望的情况下完成所有这些...

我在每个 linux 服务器上都有自己的帐户,其中包含以下两个文件。

  • /home/b/.vim
    • 我的文件夹和我的插件等。
  • /home/b/.vimrc
    • 我的点 vimrc 文件

这是我第一次尝试使用我的自定义 vim 设置运行:

vim -u ~b/.vimrc
Error detected while processing /root/.vimrc:
line   33:
E185: Cannot find color scheme railscasts
line   82:
E117: Unknown function: ...
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

但是,我的 .vimrc 文件正在搜索仅存在于我的 /home/b/.vim 文件夹中的插件。到目前为止,我一直将自己的 /home/b/.vim 文件夹复制到 root 用户区域,如下所示:

cp -r /home/b/.vim /root
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这会污染 root 帐户的主文件夹,我想停止这样做(如果可能的话)。谁能告诉我一个环境变量或任何技巧,以在我自己的完整 vim 环境(包括我的插件等)下运行而不污染根?

任何帮助是极大的赞赏。

PS - 我已经阅读了info vim文档并尝试设置 VIMRUNTIME VIMRC 和其他环境变量。他们没有帮助我,也许我做错了什么......?

小智 7

您可以.vim.vimrc文件顶部添加运行时路径:

:set runtimepath=/home/b/.vim,$VIMRUNTIME
Run Code Online (Sandbox Code Playgroud)

这使得vim/home/b/.vim首先在标准位置搜索插件、颜色等(例如/usr/share/vim/vim72/在debian挤压中)。

我将它与 alias 一起使用vim='vim -u /home/b/.vimrc'


jma*_*hew 5

我不确定你所说的污染是什么意思,但如果你的意思只是没有重复的文件,你可以创建一个符号链接。这就是我在不同用户之间保持 Vim 设置相同的方法。

我有.vimrc.vim文件夹/usr/local/etc/vim_settings,由 root 拥有,但其他人都可读。然后对于每个用户我执行以下操作:

ln -s /usr/local/etc/vim_settings/vimrc /home/user/.vimrc ln -s /usr/local/etc/vim_settings/vim /home/user/.vim

从技术上讲,该目录是“干净的”,而且设置起来也很简单。实际上,我对许多配置文件执行此操作,因此当我移动到新系统时,我只需将文件夹复制/usr/local/etc/到新计算机并设置链接即可。


Joh*_*Siu 0

我敢打赌你的 /home/b/.vimrc 插件路径是相对于主目录的。当您以 root 身份登录时,这些路径将变为相对于/root而不是/home/b. 您应该能够手动将其修改为绝对路径。