List 使用Vim标记编号列表
我正在使用vim写降价。当我键入此项时:List 使用Vim标记编号列表,list,vim,markdown,List,Vim,Markdown,我正在使用vim写降价。当我键入此项时: 1. test 2. test Vim很烦人,它的格式如下: 1. test 2. test 我的格式选项(tqlna)确实包括n。文件类型为markdown。格式列表PAT如下所示: setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+ 部分原因似乎是Vim理解不应该重新格式化以-、*或+开头的列表 如何解决此问题?如果我是对的,那么vim实际上无法识别以+开头的行,而只能识别*和
1. test
2. test
Vim很烦人,它的格式如下:
1. test 2. test
我的格式选项
(tqlna
)确实包括n
。文件类型为markdown
。格式列表PAT如下所示:
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
部分原因似乎是Vim理解不应该重新格式化以-
、*
或+
开头的列表
如何解决此问题?如果我是对的,那么vim实际上无法识别以
+
开头的行,而只能识别*
和-
。不幸的是,这是由于vim的内部格式化程序造成的(gq命令使用此格式化程序)。formatoptions
中的a
选项告诉vim在您键入时自动使用内部格式化程序,这就是造成一切混乱的原因
如果您关闭了n
选项并将formatlistpat
保留,则在键入时,当到达textwidth
末尾时,应适当换行。但是,第二次尝试使用gq
格式化文件时,它会再次出错
看起来您需要的是一个formatprg
,它以您喜欢的方式格式化标记文件。然后您可以设置该选项,并将a
选项保持为打开状态以进行自动格式化。在找到一个之前,我建议只从formatoptions
中删除a
,而不要使用gq
格式化文件
您可能还希望在模式中的[-*+]
之前匹配可能的空格。比如说,
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
出于某种原因,
want
因为formatoptions
似乎可以解决这个问题。不过,我无法解释原因。我知道w
阻止了我所抱怨的行为,但我对这个解决方案不满意,因为正常段落的自动格式化有点怪want
,我从未尝试过,它似乎能处理所有事情,并使Vim的行为像一个普通的现代软包装文本编辑器
我从这个网站上得到了这个想法:
“我发现fo=在处理RST文档或电子邮件时很有用。也很容易记忆。”如果是由插件设置的,那么最好在插件上问这个问题。事实上,我已经尝试删除插件,问题仍然是一样的。我会相应地修改我的问题。谢谢你的帮助!实际上,在我的情况下,使用另一个
formatprg
并不是一个解决方案,因为我真的希望Vim在使用它进行标记时表现得像一个普通的文本编辑器。这意味着我不想一直在打gq,我想这会让事情变得更难。所以我不能接受你的回答。我不理解你的评论。也许我没有解释清楚<代码>gq是问题而不是解决方案。如果您将formatprg
设置为自动格式化,那么您可以再次使用a
选项来自动格式化。在我看来,一旦将formatprg
设置为内置格式化程序之外的其他设置,您就不再具有自动格式化功能,这就是导致我编写注释的原因。