拆分 .vimrc,把什么放在哪里?

拆分 .vimrc,把什么放在哪里?

autocommands我在我的里面放了一堆文件类型依赖.vimrc,其中一些是语法相关的。

我想把它们放在我的.vim/树中的单独文件中,例如。一些 tex 语法会进入,.vim/syntax/tex.vim但是当我这样做时,vim不会再拾取它们。

我猜想文件没有自动读取(正如我最初预期的那样)。我应该怎么做?

答案1

您是否将自动命令作为自动命令放在这些单独的文件中?也就是说,您的文件中是否~/.vim/syntax/tex.vim包含如下行:

au FileType tex set expandtab

或这个,

au BufRead,BufNewFile *.tex set expandtab

如果是这样,那就错了。当打开与插件名称对应的文件类型的文件时,Vim 会从 ftplugin、syntax 和 indent 目录中获取文件。如果插件包含自动命令,则将读取并执行这些自动命令,但命令部分直到下一个触发事件发生的时间。

如果您想要进行某些与文件类型相关的设置,请在该文件类型的 ftplugin 中放入类似这样的命令。

setlocal expandtab

不要将其放在自动命令中,而是使用setlocal而不是仅仅set这样设置将应用于包含该文件类型的缓冲区而不是应用于所有 Vim 缓冲区。

:help 43.1
:help 41.11

编辑

我忘了回答问题的另一部分。Vim 有三种文件类型相关的插件,它们位于 ~/.vim 的三个不同子目录中:ftplugin、syntax 和 indent。indent 子目录用于影响特定文件类型缩进的插件。syntax 子目录用于影响语法颜色的插件。ftplugin 用于影响行为设置(如文本宽度、映射、缩写等)的插件。

相关内容