How to start vim without executing /etc/vimrc?

107

23

On my Linux server at work, the admins did not install cscope, and I installed it from source in my home directory and added it to the $PATH. The trouble is, the /etc/vimrc has a reference to /usr/bin/cscope which does not exist and everytime I start vim, it complains about that and I have to press for that message to go away.

It is interesting that if I remove cscope from my $PATH, I don't get that behavior - so it is possible that vim is testing that cscope exists somewhere, and only then executing the cscope configuration - but then it gets it wrong!

So my question is: can I set something up in my .vimrc so it does not source the global /etc/vimrc? I don't want to move cscope out of PATH, as I don't want to type the full directory name every time I run it from the command line.

florin

Posted 2010-05-13T21:01:43.190

Reputation: 1 261

Answers

80

From the Vim man page:

-u {vimrc}

Use the commands in the file {vimrc} for initializations. All the other
initializations are skipped. Use this to edit a special kind of files.
It can also be used to skip all initializations by giving the name "NONE".
See ":help initialization" within vim for more details.

If you still want your ~/.vimrc to be processed, try this:

vim -u ~/.vimrc

Add the following line to ~/.bashrc (or your shell's equivalent file if not bash) to have the -u switch added automatically:

alias vim="vim -u ~/.vimrc"

You won't be able to add something to ~/.vimrc to prevent /etc/vimrc from being read, because the system file is processed before your user file (see ":help init", section 3, "Execute Ex commands, from environment variables and/or files").

Steve Simms

Posted 2010-05-13T21:01:43.190

Reputation: 1 834

Thanks! This finally allowed me to edit a file that (for some reason) had thousands of characters in one line and would otherwise freeze my Vim for ever. – Hubro – 2014-02-06T11:48:22.120

102

From the Vim man page:

-u {vimrc}

Use the commands in the file {vimrc} for initializations. All the other initializations are skipped. Use this to edit a special kind of files. It can also be used to skip all initial- izations by giving the name "NONE". See ":help initialization" within vim for more details.

So this should do the job:

vim -u NONE

You should be able to alias this to your normal command for everyday usage.

heavyd

Posted 2010-05-13T21:01:43.190

Reputation: 54 755

1... but I want ~/.vimrc to execute, just not /etc/vimrc – florin – 2010-05-13T21:40:51.550

3vim -u ~/.vimrc – heavyd – 2010-05-13T22:08:20.270