Чтобы убедиться, что моя личная конфигурация не влияет на поведение, я хочу запустить Vim таким образом, чтобы игнорировать все мои установленные пользователем файлы конфигурации, как если бы Vim только что был впервые установлен заново, а пользователь запустил его. немедленно.
Об этом говорится в разделе часто задаваемых вопросов, в котором говорится, что ответом является запуск Vim следующей командой:
vim -u NONE -U NONE -N -i NONE
Это проходит большую часть пути, но runtimepath
опция все еще содержит ~/.vim
и, в частности, ~/.vim/after
(например, если я впоследствии включу обнаружение типа файла и изменю тип файла, ~/.vim/after/syntax/the_relevant_filetype.vim
будет выполнен код in ).
Я могу обойти эту проблему, вызывая следующие команды при запуске *:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
... но я не уверен, что:
- Это надежное решение: это единственные пути, которые могут повлиять на настройку пользователя? Есть ли что-нибудь еще, о чем я не думал?
- Существует лучший способ достижения желаемого результата.
* Используя аргументы --cmd
или -u vimrc
shell, или просто вводя их вручную.
РЕДАКТИРОВАТЬ : Вот один конкретный пример проблемы, которую я пытаюсь решить. (Хотя я хотел бы, чтобы решение исправляло любые другие возможные проблемы, которые я, возможно, еще не учел.):
Создайте файл ~ / .vim / after / ftplugin / c.vim, содержащий содержимое:
noremap i :echom "This is not default behaviour"<CR>
Теперь у нас есть некоторая установленная пользователем конфигурация, которую мы хотим игнорировать. Давайте проверим решение, предложенное в FAQ.
Запустите Vim с помощью команды:
vim -u NONE -U NONE -N -i NONE
Введите команды:
:filetype plugin on :set ft=c i
Желаемое поведение : Vim должен войти в режим вставки. Это то, что он сделал бы, если бы не было никакой пользовательской конфигурации.
Наблюдаемое поведение : Vim выводит «Это поведение не по умолчанию»
:cd ~
, но также местоположение viminfo
файла по умолчанию находится в $ HOME, что может вызвать E138. Я думаю, создание нового пустого каталога и использование его для $ HOME может быть лучшим решением.
-u NONE
?
/tmp
могло бы быть лучше, это была моя первая мысль, но затем я выбрал / dev / null в качестве черной дыры. ... или что-то вроде HOME=$(mktemp -d) vim ...
.
-u NONE
? Зависит от того, какое поведение вам нужно, я полагаю.
HOME=/dev/null vim -u NONE
?