不要将当前选项应用于新打开的文件 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