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

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

首先,为了防止 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

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

cp -r /home/b/.vim /root

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

任何帮助是极大的赞赏。

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

答案1

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

:set runtimepath=/home/b/.vim,$VIMRUNTIME

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

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

答案2

我不确定你所说的污染是什么意思,但如果你的意思只是没有重复的文件,你可以创建一个符号链接。这就是我在不同用户之间保持 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/文件夹复制到新计算机并设置链接即可。

答案3

如果这只是偶尔编辑一下配置文件,我会在我的用户帐户下启动 Vim,并使用该:write !sudo tee %技巧,最好以健壮的形式SudoEdit.vim - 使用 sudo 或 su 或任何其他工具编辑文件插入。

答案4

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

相关内容