不要将当前选项应用于新打开的文件 vim
don't apply current options to new opened file 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
但想象一下如果我有许多其他选项继承自许多其他文件。当我 :tabe anotherFile
时,如何告诉 vim 不要继承它们?
好吧,setlocal
只为缓冲区设置这些东西。
但这当然不适用于 .vimrc
。你有两种可能性,自动命令或文件类型插件:
autocmd BufRead,BufNewFile *.{c} setlocal colorcolumnt=100
这确实将本地设置设置为以 .c
结尾的文件的任何已打开缓冲区
或者您可以将设置添加到 filetype-plugin。有关详细信息,请参阅 :h filetype-plugin
。基本上只是将设置添加到特定文件。在你的情况下很可能在 .vim/ftplugin/c.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
但想象一下如果我有许多其他选项继承自许多其他文件。当我 :tabe anotherFile
时,如何告诉 vim 不要继承它们?
好吧,setlocal
只为缓冲区设置这些东西。
但这当然不适用于 .vimrc
。你有两种可能性,自动命令或文件类型插件:
autocmd BufRead,BufNewFile *.{c} setlocal colorcolumnt=100
这确实将本地设置设置为以 .c
或者您可以将设置添加到 filetype-plugin。有关详细信息,请参阅 :h filetype-plugin
。基本上只是将设置添加到特定文件。在你的情况下很可能在 .vim/ftplugin/c.vim