#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