Как запустить vim, не выполняя / etc / vimrc?

103

На моем Linux-сервере на работе администраторы не установили cscope, и я установил его из исходного каталога в своем домашнем каталоге и добавил в $ PATH. Проблема в том, что / etc / vimrc имеет ссылку на / usr / bin / cscope, который не существует, и каждый раз, когда я запускаю vim, он жалуется на это, и я должен нажать, чтобы это сообщение исчезло.

Интересно, что если я удаляю cscope из моего $ PATH, я не получаю такого поведения - поэтому возможно, что vim проверяет, существует ли где-то cscope, и только затем выполняет настройку cscope, - но тогда он ошибается!

Итак, мой вопрос: могу ли я что-то настроить в моем .vimrc, чтобы он не являлся источником глобального / etc / vimrc? Я не хочу перемещать cscope из PATH, поскольку я не хочу вводить полное имя каталога каждый раз, когда я запускаю его из командной строки.

флорин
источник

Ответы:

77

Со страницы руководства Vim :

-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.

Если вы все еще хотите, чтобы ваш ~ / .vimrc обрабатывался, попробуйте это:

vim -u ~/.vimrc

Добавьте следующую строку в ~ / .bashrc (или эквивалентный файл вашей оболочки, если не bash), чтобы автоматически добавить ключ -u:

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

Вы не сможете добавить что-либо в ~ / .vimrc, чтобы предотвратить чтение / etc / vimrc, поскольку системный файл обрабатывается перед вашим пользовательским файлом (см. «: Help init», раздел 3, «Выполнение команд Ex, из переменных среды и / или файлов ").

Стив Симмс
источник
Спасибо! Это, наконец, позволило мне отредактировать файл, который (по какой-то причине) содержал тысячи символов в одной строке и в противном случае мог бы навсегда заморозить мой Vim.
Hubro
96

Со страницы руководства Vim :

-u {vimrc}

Используйте команды в файле {vimrc} для инициализации. Все остальные инициализации пропускаются. Используйте это, чтобы редактировать особый вид файлов. Его также можно использовать для пропуска всех инициализаций, указав имя «НЕТ». Смотрите ": инициализация справки" в vim для более подробной информации.

Так что это должно сделать работу:

vim -u NONE

Вы должны быть в состоянии связать это с вашей обычной командой для повседневного использования.

heavyd
источник
1
... но я хочу, чтобы ~ / .vimrc выполнялся, но не / etc / vimrc
florin
3
vim -u ~/.vimrc
тяжело