vim - Vim 注释格式选项重复不起作用
问题描述
我将文件类型的comments
选项设置为b:*
. 如果我打开这样的文件,我可以用set comments?
. 现在我进一步明确设置formatoptions
用于r
在新行上重复注释。毕竟set formatoptions?
在 sum 中调用 return j1tcqln
。如果打开一个新行o
并写下类似* This is a comment
hit<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/
. 这有意义吗?我怎么能把它们混在一起?
解决方案
文件类型插件按此顺序获取,每个插件都可能覆盖前一个:
$HOME/.vim/ftplugin/markdown.vim
$VIMRUNTIME/ftplugin/markdown.vim
$HOME/.vim/after/ftplugin/markdown.vim
- - 编辑 - -
第一个位置适用于两种场景:
- 您正在为 Vim 本身不支持的语言创建支持脚本,
- 您想阻止 Vim 为特定文件类型采购默认支持脚本(您的答案中的解决方案)。
第二个位置是禁区。造成这种情况的四个主要原因:
- 您的更改可以并且将在未来的更新中被覆盖,
- 你的改变可能会使 Vim 不稳定,
- 必须以 sudo 方式进行配置会很快变得烦人,
- 把你的东西放在你的
$HOME
.
第三个位置是最后一个来源,因此它允许您有选择地覆盖默认设置并添加您自己的设置。这是您自己的文件类型特定设置最安全的地方。
推荐阅读
- python - 调试一个似乎无缘无故暂停的 Python 程序
- javascript - 如何在网站中显示 Kibana 可视化仪表板?
- python - Django:使用查询集的自定义保存方法
- java - 无法锁定未保存的瞬态实例
- html - Bootstrap 4轮播图像不覆盖其他图像
- security - F5 负载均衡器拒绝 SHA256 加密算法密码套件?
- c++ - CMake - 将调用的命令行作为 CMake 中的 var 获取
- database - 使用 typeORM 搜索早于日期的数据
- python - 使用 Adobe Reader 命令使用 python 操作 PDF
- c++ - 返回一个字符数组