Чтобы убедиться, что моя личная конфигурация не влияет на поведение, я хочу запустить 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 vimrcshell, или просто вводя их вручную.
РЕДАКТИРОВАТЬ : Вот один конкретный пример проблемы, которую я пытаюсь решить. (Хотя я хотел бы, чтобы решение исправляло любые другие возможные проблемы, которые я, возможно, еще не учел.):
Создайте файл ~ / .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?