如何覆盖 vim 中 ftplugins 设置的选项

How to override options set by ftplugins in vim

我希望能够为所有文件类型设置我自己的 formatoptions,但我似乎无法让它覆盖 Vim 的默认值 "ftplugins"

我将我的自定义格式选项放在 .vim/after/overrides 中,但这似乎并没有覆盖任何内容。

如果我 运行 :verbose set formatoptions? 它告诉我设置该选项的最后一个文件是 /usr/share/vim/vim74/ftplugin/vim.vim

.vim/after/overrides.vim的内容是:

" Format Options
set formatoptions=crnj

after目录树与~/.vim/下的目录树结构相同;您的 .vim/after/overrides.vim 将永远不会被采购(检查 :scriptnames)。

您不能用 after 目录覆盖 all 文件类型插件,只能单独覆盖,例如~/.vim/after/ftplugin/vim.vim.

中的 Vimscript

您可以使用 :autocmd Filetype * setlocal formatoptions=... 执行通用覆盖,但必须在 之后 默认文件类型检测(即 :filetype plugin on)定义。

您应该使用 :setlocal 而不是 :set,就像在 ftplugins 中一样。