不要将当前选项应用于新打开的文件 vim

Dem*_*ler 1 linux vim

我经常在 vim 中打开许多文件。问题是某些文件有自己的选项。例如:

make 文件的设置

  set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4
  set list listchars=eol:¬,tab:??,trail:~,extends:>,precedes:<
  hi SpecialKey ctermfg=243
  hi NonText ctermfg=243
Run Code Online (Sandbox Code Playgroud)

C文件的设置

  set colorcolumn=100 tabstop=4 shiftwidth=4 softtabstop=4
Run Code Online (Sandbox Code Playgroud)

因此,如果我先打开 makefile,然后:tabe main.c我可以看到从 makefile 中打开的不可见字符。

我知道我:set nolist可以想象,如果我有许多其他选项继承自许多其他文件。我怎么能告诉vim不要继承它们:tabe anotherFile

Dok*_*ldo 5

好吧,setlocal只能为缓冲区设置这些东西。但这当然不适用于.vimrc. 您有两种可能性,autocmds 或文件类型插件:

autocmd BufRead,BufNewFile *.{c} setlocal colorcolumnt=100
Run Code Online (Sandbox Code Playgroud)

这确实将本地设置设置为文件结尾的任何打开的缓冲区 .c

或者您可以将设置添加到文件类型插件中。有关:h filetype-plugin更多信息,请参阅。基本上只需将设置添加到特定文件。在你的情况下很可能在.vim/ftplugin/c.vim