问题
I have problem with .vimrc file, the problem is that it sometimes get loaded, and sometimes not.
1 set number
2 syntax on
3 set autoindent
4 map <F2> :!g++ % -Wall -time -O<CR>
5 echo "it works!"
I've added echo to check if it's loaded, and when I type e.g. vim .vimrc
, it gets loaded and shows me "it works" in terminal, but when I type e.g. sudo vim test.cpp
it doesn't get loaded, the message doesn't show up. I'm using debian.
回答1:
When you use sudo
, Vim gets launched under a different user (root
). As this user has a different home directory, another ~/.vimrc
is loaded (or none, if that user doesn't have one). You can solve the problem in multiple ways:
- You can directly specify the location of your
.vimrc
:sudo vim -u $HOME/.vimrc
(this won't help with plugins, though). - You can use
sudo -e <file>
orsudoedit
. - You can symlink your
.vimrc
(and the.vim
plugins directory) for root:sudo ln -s $HOME/.vimrc .vimrc; sudo ln -s $HOME/.vim .vim
- You can change the entire home directory of root to be the same as yours (not recommended, because of security and access rights!)
回答2:
sudo vim
causes vim to be run as the root user. Which mean vim looks for the the vimrc in root's home directory and not yours.
The two choices you have to fix this are use
sudo -e <file>
Or copy your vim configuration to root's home directory.
sudo -e
or sudoedit
copies the file to a tmp directory and allows you to edit it and then copies it back on save. This is safer than using sudo vim
and is the recommended way of solving this problem.
回答3:
I want to use vim
on an AWS EC2 Amazon AMI instance.
Neither of the above answers helped me to get the color scheme or the plugins working with sudo
. The solution that got it working, however, is to be found here:
In your .profile
, .bashrc
or the like add:
EDITOR=vim
VISUAL=$EDITOR
export EDITOR VISUAL
and then edit the file using sudoedit /path/to/file
.
来源:https://stackoverflow.com/questions/26077949/vimrc-configuration-file-does-not-load-when-editing-with-sudo