Есть ли способ предоставить отдельный файл vimrc только для 1 сеанса?

Есть ли способ предоставить отдельный файл vimrc только для 1 сеанса?

Я хотел бы узнать, есть ли способ в vim/vi предоставить другой файл vimrc. Я рассматриваю возможность управления двумя разными файлами vimrc. Для содержимого, которое я проверяю/проверяю в системе контроля версий, я хочу использовать другой набор команд, а не обычный в моем .vimrcфайле

Например.

Мой .vimrcфайл содержит команду для автоматического удаления любого завершающего пробела при сохранении файла. Но я не хочу, чтобы эта функция была активирована для определенных файлов.

Так есть ли способ предоставить другой файл vimrc (может быть, в командной строке, каждый раз передавая его в качестве параметра, например vim --vimrc=somefile file-to-open)?

решение1

Смотрите страницу руководства:

-u {vimrc} Использовать команды в файле {vimrc} для инициализации. Все остальные инициализации пропускаются. Используйте это для редактирования особого типа файлов. Его также можно использовать для пропуска всех инициализаций, указав имя "NONE". Подробнее см. ":help initialization" в vim.

решение2

Так есть ли способ предоставить другой файл vimrc (может быть, в командной строке, каждый раз передавая его в качестве параметра, например vim --vimrc=somefile file-to-open)?

Да, используйте -uпараметр:

vim -u ~/.my-custom-vimrc

От man 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 содержит команду для автоматического удаления любого завершающего пробела при сохранении файла. Но я не хочу, чтобы эта функция была активирована для определенных файлов.

Есть другое решение, если вам нужна специальная обработка для некоторых известных типов файлов; используйте команду autocmdв вашем vimrc. Например, вот моя конфигурация, зависящая от типа файла:

" Mapping of filetypes to options
au FileType freerad      setl noexpandtab sts=0 sw=8
au FileType make         setl noexpandtab sts=0
au FileType php          let php_sql_query=1
au FileType php          let php_htmlInStrings=1
au FileType python       setl shiftwidth=2 expandtab
au FileType sql          setl noexpandtab sts=0 sw=8
" global options I do not want any filetype to override
au FileType *            setl formatoptions-=ro " don't continue comments

Если вам нужно применить параметры к чему-то, чему vim не назначает автоматически определенный тип файла, вы можете добавить собственное сопоставление (сделайте это перед использованием команды autocmd):

" mapping of filenames to filetypes
au FileReadPost,BufReadPost,BufNewFile /etc/freeradius/* setl ft=freerad
au FileReadPost,BufReadPost,BufNewFile *.xt              setl ft=xt

решение3

Вы также можете set exrcв своем основном .vimrc заставить vim автоматически загружать .vimrc из текущего каталога.

решение4

Если вы храните каталог конфигурации Vim в Git (я надеюсь на это), вы можете использовать разные ветки и выполнять извлечение изменений между ними.

Связанный контент