首页 > 解决方案 > Vim 注释格式选项重复不起作用

问题描述

我将文件类型的comments选项设置为b:*. 如果我打开这样的文件,我可以用set comments?. 现在我进一步明确设置formatoptions用于r在新行上重复注释。毕竟set formatoptions?在 sum 中调用 return j1tcqln。如果打开一个新行o并写下类似* This is a commenthit<CR我希望*在新行上得到 a 的内容,那么会导致该r选项,但不会。
检查该+comments功能是否可用:echo has('comments')是肯定的并返回1
这里有什么问题?

编辑:
这是我的ftplugin/markdown.vim

setlocal comments=b:*,b:-,b:+,b:>
setlocal formatoptions+=r
setlocal formatoptions-=c
echom 'Format: ' . &formatoptions

打开此类型的文件时,最后一行会留下正确的消息。:echo &formatoptions但是之后手动调用,它又是错误的输出。

似乎无论我在这ftplugin之后做什么,它都不再存在了,即使它已经被执行了。

编辑:
看起来我ftplugin的被/usr/share/nvim/runtime/ftplguin/. 这有意义吗?我怎么能把它们混在一起?

标签: vimcomments

解决方案


文件类型插件按此顺序获取,每个插件都可能覆盖前一个:

$HOME/.vim/ftplugin/markdown.vim
$VIMRUNTIME/ftplugin/markdown.vim
$HOME/.vim/after/ftplugin/markdown.vim

- - 编辑 - -

第一个位置适用于两种场景:

  • 您正在为 Vim 本身不支持的语言创建支持脚本,
  • 您想阻止 Vim 为特定文件类型采购默认支持脚本(您的答案中的解决方案)。

第二个位置是禁区。造成这种情况的四个主要原因:

  • 您的更改可以并且将在未来的更新中被覆盖,
  • 你的改变可能会使 Vim 不稳定,
  • 必须以 sudo 方式进行配置会很快变得烦人,
  • 你的东西放在你的 $HOME.

第三个位置是最后一个来源,因此它允许您有选择地覆盖默认设置并添加您自己的设置。这是您自己的文件类型特定设置最安全的地方。


推荐阅读