Vim 评论格式选项重复不起作用
Vim Comments Format Options Repeat Not Working
我将文件类型的 comments
选项设置为 b:*
。如果我打开这样的文件,我可以用 set comments?
来验证这一点。现在我进一步明确设置 formatoptions
以使用 r
在新行上重复注释。毕竟调用set formatoptions?
return总和j1tcqln
。
如果打开一个新行 o
并写类似 * This is a comment
的内容,点击 <CR
我希望在新行上得到一个 *
es,导致 r
选项, 但事实并非如此。
检查 +comments
功能是否可用 :echo has('comments')
是肯定的并且 returns 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/
中的默认值覆盖了。这有意义吗?我怎么能把它们混在一起?
解决方案是在 ftplugin
文件的 header 处添加:
if exists('b:did_ftplugin') | finish | endif
let b:did_ftplugin = 1
然后是必要的,因为如果设置了此变量,/usr/share/nvim
中的 ftplugin
会在之后加载并且不会被执行。
文件类型插件按此顺序获取,每个插件都可能覆盖前一个:
$HOME/.vim/ftplugin/markdown.vim
$VIMRUNTIME/ftplugin/markdown.vim
$HOME/.vim/after/ftplugin/markdown.vim
--- 编辑 ---
第一个位置适合两种场景:
- 您正在为 Vim、
本身不支持的语言创建支持脚本
- 您想阻止 Vim 获取特定文件类型的默认支持脚本(您答案中的解决方案)。
第二个地点禁止入内。这样做的四个主要原因:
- 您的更改可以并且将会在未来的更新中被覆盖,
- 您的更改可能会使 Vim 不稳定,
- 不得不对您的配置进行 sudo 操作会很快变得烦人,
- 将你的东西放入你的
$HOME
.
第三个位置是最后一个来源,因此它允许您有选择地覆盖默认设置并添加您自己的设置。这是您自己的文件类型特定设置最安全的地方。
我将文件类型的 comments
选项设置为 b:*
。如果我打开这样的文件,我可以用 set comments?
来验证这一点。现在我进一步明确设置 formatoptions
以使用 r
在新行上重复注释。毕竟调用set formatoptions?
return总和j1tcqln
。
如果打开一个新行 o
并写类似 * This is a comment
的内容,点击 <CR
我希望在新行上得到一个 *
es,导致 r
选项, 但事实并非如此。
检查 +comments
功能是否可用 :echo has('comments')
是肯定的并且 returns 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/
中的默认值覆盖了。这有意义吗?我怎么能把它们混在一起?
解决方案是在 ftplugin
文件的 header 处添加:
if exists('b:did_ftplugin') | finish | endif
let b:did_ftplugin = 1
然后是必要的,因为如果设置了此变量,/usr/share/nvim
中的 ftplugin
会在之后加载并且不会被执行。
文件类型插件按此顺序获取,每个插件都可能覆盖前一个:
$HOME/.vim/ftplugin/markdown.vim
$VIMRUNTIME/ftplugin/markdown.vim
$HOME/.vim/after/ftplugin/markdown.vim
--- 编辑 ---
第一个位置适合两种场景:
- 您正在为 Vim、 本身不支持的语言创建支持脚本
- 您想阻止 Vim 获取特定文件类型的默认支持脚本(您答案中的解决方案)。
第二个地点禁止入内。这样做的四个主要原因:
- 您的更改可以并且将会在未来的更新中被覆盖,
- 您的更改可能会使 Vim 不稳定,
- 不得不对您的配置进行 sudo 操作会很快变得烦人,
- 将你的东西放入你的
$HOME
.
第三个位置是最后一个来源,因此它允许您有选择地覆盖默认设置并添加您自己的设置。这是您自己的文件类型特定设置最安全的地方。