Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux don';t将当前选项应用于新打开的文件vim_Linux_Vim - Fatal编程技术网

Linux don';t将当前选项应用于新打开的文件vim

Linux don';t将当前选项应用于新打开的文件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 所以,如果我先打开makefile,然后打开:tabe mai

我经常在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
所以,如果我先打开makefile,然后打开
:tabe main.c
,我可以看到从makefile打开的不可见字符


我知道我可以
:set nolist
,但想象一下,如果我有许多其他选项继承许多其他文件。当我使用另一个文件时,如何告诉vim不要继承它们?:tabe另一个文件?

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

autocmd BufRead,BufNewFile *.{c} setlocal colorcolumnt=100
这会将本地设置设置为以
.c


也可以将设置添加到文件类型插件。请参阅
:h filetype plugin
,了解更多信息。基本上,只需将设置添加到特定文件。在您的情况下,最有可能是在
.vim/ftplugin/c.vim

下,有
setlocal
只为缓冲区设置这些内容。 但这当然不适用于
.vimrc
。有两种可能,autocmds或文件类型插件:

autocmd BufRead,BufNewFile *.{c} setlocal colorcolumnt=100
这会将本地设置设置为以
.c

也可以将设置添加到文件类型插件。请参阅
:h filetype plugin
,了解更多信息。基本上,只需将设置添加到特定文件。在您的情况下,最有可能出现在
.vim/ftplugin/c.vim