我正在使用 Vim,formatoptions +=a
如中所述Vim:文档自动换行在我编写文档(特别是 Markdown 文档)时自动格式化行。
我的问题是 Vim 还想重新格式化项目符号列表,因为每个项目符号点之间有空行。
发生的事情是 vim 重新格式化
This is wath we will do:
* task 1,
* task 2,
* task 3.
进入
This is wath we will do:
* task 1, task 2, task 3.
(我也不明白为什么星号在这个重新格式化过程中消失。)
我怎样才能让 Vim 停止重新格式化这些列表?
答案1
尝试这个:
- 添加
n
到formatoptions
vim 识别列表 (:set fo+=n
) - 设置
formatlistpat
将星号识别为项目符号 (set flp+=\\\|^\\*\\s*
) 的选项(请注意,反斜杠的数量取决于您的magic
水平)。
根据我的测试,它并不完美,但似乎很接近。
答案2
当您编辑 Markdown 文件时是否filetype
设置了该选项?markdown
您可以使用它:verbose set filetype?
来检查当前值。
当你运行:filetype plugin on
(例如从你的.vimrc
),并filetype
设置为markdown
,Vim 将源$VIMRUNTIME/ftplugin/markdown.vim
这将设置一些有助于格式化 Markdown 列表项的选项( comments
、formatlistpat
和)。formatoptions
注意:常见的 Markdown 文件名模式实际上通过以下方式*.md
映射到文件类型modula2
$VIMRUNTIME/filetype.vim
。如果您经常在 Markdown 文件中使用此文件名模式,您可能需要覆盖此设置。您可以通过将其放入您的.vimrc
文件中来做到这一点:
autocmd! filetypedetect BufNewFile,BufRead *.md setfiletype markdown
或者,您可以添加一个模型行对每个文件:
<!-- vim: set filetype=markdown : -->