не применять текущие параметры к новому открытому файлу vim

#linux #vim

#linux #vim

Вопрос:

Я часто открываю много файлов в vim. Проблема в том, что у некоторых файлов есть свои собственные параметры. Например:

настройки для создания файлов

   set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4
  set list listchars=eol:¬,tab:→⠀,trail:~,extends:>,precedes:<
  hi SpecialKey ctermfg=243
  hi NonText ctermfg=243
  

настройки для файлов C

   set colorcolumn=100 tabstop=4 shiftwidth=4 softtabstop=4
  

Итак, если я сначала открою makefile, а затем :tabe main.c я увижу невидимый символ, который был включен из makefile.

Я понимаю, что могу :set nolist , но представьте, есть ли у меня много других параметров, наследуемых от многих других файлов. Как я могу сказать vim не наследовать их, когда я :tabe anotherFile ?

Ответ №1:

Ну, это setlocal нужно установить только для буфера. Но это, конечно, не работает для a .vimrc . Там у вас есть две возможности: плагины autocmds или filetype:

 autocmd BufRead,BufNewFile *.{c} setlocal colorcolumnt=100
  

Это устанавливает локальные настройки для любого открытого буфера файла, заканчивающегося на .c

Или вы можете добавить настройки в filetype-плагин. См :h filetype-plugin . Для получения дополнительной информации об этом. В основном просто добавьте настройки в определенный файл. В вашем случае, скорее всего, под .vim/ftplugin/c.vim