Markdown用Vim编号列表

时间:2014-02-05 12:40:53

标签: list vim markdown

我正在使用vim来写Markdown。当我输入时:

1. test
2. test

Vim令人讨厌并将其格式化为:

1. test 2. test

我的formatoptionstqlna)确实包含n。文件类型为markdown。 formatlistpat如下:

setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+

部分原因似乎有效,因为Vim明白它不应该重新格式化以-*+开头的列表。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

如果我是对的,那么vim实际上无法识别以+开头而只有*-的行。不幸的是,这是由于vim的内部格式化程序(gq命令使用此格式化程序)。 a中的formatoptions选项告诉vim在您输入时自动使用内部格式化程序,这就是搞砸了所有内容。

如果您取消n选项并离开formatlistpat,则在键入时到达textwidth时应适当换行。但是,第二次尝试使用gq格式化文件时,会再次将其搞砸。

看起来您需要的是formatprg,它可以按照您喜欢的方式格式化降价文件。然后,您可以设置该选项并保持a选项以进行自动格式化。在您找到之前我建议您从a删除formatoptions而不使用gq格式化文件。

您可能还希望在模式中的[-*+]之前匹配可能的空格。例如,

setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+

答案 1 :(得分:0)

出于某种原因,want formatoptions似乎可以解决问题。但是,我无法解释原因。我知道w阻止了我抱怨的行为,但我对这个解决方案不满意,因为那时正常段落的自动格式化有点时髦。 want,我从来没有尝试过,似乎会照顾好一切,让Vim的行为就像一个普通的现代软包装文本编辑器。

我从这个网站得到了这个想法:http://blog.ezyang.com/2010/03/vim-textwidth/

“我发现fo =在处理RST文档或电子邮件时非常有用。也很容易记忆。”