避免使用 formatoptions+=a 重新格式化项目符号列表

避免使用 formatoptions+=a 重新格式化项目符号列表

我正在使用 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

尝试这个:

  • 添加nformatoptionsvim 识别列表 ( :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 列表项的选项( commentsformatlistpat和)。formatoptions

注意:常见的 Markdown 文件名模式实际上通过以下方式*.md映射到文件类型modula2$VIMRUNTIME/filetype.vim。如果您经常在 Markdown 文件中使用此文件名模式,您可能需要覆盖此设置。您可以通过将其放入您的.vimrc文件中来做到这一点:

autocmd! filetypedetect BufNewFile,BufRead *.md setfiletype markdown

或者,您可以添加一个模型行对每个文件:

<!-- vim: set filetype=markdown : -->

相关内容