首先,为了防止 X/Y 问题,我只想声明我真正想要的是:
- 以 root 用户身份运行 vim。
- 指示 vim 使用我漂亮的配色方案和我所有的插件。
- 完成所有这些操作都不会污染文件夹
/root/.vimrc
或/root/.vim
文件夹。 - 做这一切而不
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
.您应该能够手动将其修改为绝对路径。