我的.vimrc文件有问题,问题是它有时会被加载,有时却没有。
1 set number
2 syntax on
3 set autoindent
4 map <F2> :!g++ % -Wall -time -O<CR>
5 echo "it works!"
我已经添加了回音来检查它是否已加载,以及我输入的时间,例如vim .vimrc
,它会被加载并显示我&#34;它可以正常运行&#34;在终端,但当我输入例如sudo vim test.cpp
它没有加载,消息也没有显示出来。我正在使用debian。
答案 0 :(得分:14)
当您使用sudo
时,Vim会在其他用户(root
)下启动。由于此用户具有不同的主目录,因此加载了另一个~/.vimrc
(如果该用户没有加载.vimrc
,则为无。您可以通过多种方式解决问题:
sudo vim -u $HOME/.vimrc
:sudo -e <file>
的位置(但这不会对插件提供帮助)。sudoedit
或.vimrc
。.vim
(和sudo ln -s $HOME/.vimrc .vimrc; sudo ln -s $HOME/.vim .vim
插件目录)符号链接到root:{{1}} 答案 1 :(得分:2)
sudo vim
导致vim以root用户身份运行。这意味着vim在root的主目录中查找vimrc而不是你的。
您需要解决的两个选择是使用
sudo -e <file>
或者将vim配置复制到root用户的主目录。
sudo -e
或sudoedit
将文件复制到tmp目录,并允许您对其进行编辑,然后在保存时将其复制回来。这比使用sudo vim
更安全,是解决此问题的推荐方法。
答案 2 :(得分:1)
您可以使用-E
标志保留您的环境变量,以便vim可以找到您的vim配置。
-E, --preserve-env
指示用户希望保留其现有环境变量的安全策略。如果用户没有保留环境的权限,则安全策略可能会返回错误。
使用方式如下:
sudo -E vim /path/to/file
但是请注意,它不如sudoedit
安全,因为您将信任具有root访问权限的vim配置(以及所有插件)。
答案 3 :(得分:0)
我想在 AWS EC2 Amazon AMI 实例上使用vim
。
以上答案都没有帮助我使用sudo
配色方案或插件。然而,找到它的解决方案是here:
在.profile
,.bashrc
或类似内容中添加:
EDITOR=vim
VISUAL=$EDITOR
export EDITOR VISUAL
然后使用sudoedit /path/to/file
编辑文件。
答案 4 :(得分:0)
sudo vim /etc/sudoers
更改此行:
Defaults env_reset
收件人:
Defaults !env_reset
然后重新登录您的shell