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


9

我按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停止重新格式化这些列表?


星号消失是因为Vim将其误认为是注释领导者。
gioele 2012年

Answers:


5

尝试这个:

  • 添加nformatoptionsvim可以识别列表(:set fo+=n
  • 设置将formatlistpat星号识别为项目符号(set flp+=\\\|^\\*\\s*)的选项(请注意,反斜杠的数量取决于您的magic体贴水平)。

根据我的测试,它并不完美,但似乎很接近。


3

编辑Markdown文件时,该filetype选项是否设置为markdown?您可以:verbose set filetype?用来检查当前值。

当你运行:filetype plugin on(例如,从你的.vimrc),并filetype设置为markdown,Vim会$VIMRUNTIME/ftplugin/markdown.vim,这将设置一些选项(commentsformatlistpat,和formatoptions)应与格式降价列表中的项目提供帮助。

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

autocmd! filetypedetect BufNewFile,BufRead *.md setfiletype markdown

或者,您可以向每个文件添加一个modeline

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

tpope的语法文件(我正在使用的语法文件)在github.com/tpope/vim-markdown/blob/master/ftplugin/markdown.vim中设置formatlistpath。由于某些原因,似乎未加载ftplugin ...
gioele 2012年

1
vim-markdown插件应该足够了,但是您需要使用启用其功能(以及其他文件类型插件的功能):filetype plugin on。请参阅:help :filetype-plugin-on
克里斯·约翰森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.