Vim 中纯文本项目符号列表的缩进

Vim 中纯文本项目符号列表的缩进

我经常在 Vim 中编写类似这种格式的文本——

- talking point 1

- talking point 2 ....
continue on point 2

理想情况下,我希望 Vim 可以自动对齐,例如:

- talking point 1

- talking point 2 
  continue on point 2

这可能吗?

答案1

我的 .vimrc 中有这个:

set comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-,fb:[+],fb:[x],fb:[-]

如果我记得正确的话,在你的 .vimrc 中添加这一行就可以完成了:

set comments +=fb:-

如需详细解释,请尝试:

:help comments

答案2

如果您已n设置标志formatoptions(例如,使用set fo+=n),Vim 已经知道如何格式化带有数字项目符号的列表。formatlistpat(简称flp) 是 Vim 用来匹配它的正则表达式,因此您需要增强该正则表达式。这应该可以帮您解决问题(但仅增加了对-项目符号的支持):

set formatlistpat=^\\s*\\(\\d\\+[\\]:.)}\\t\ ]\\|-\\)\\s*

抱歉,这里有个反斜杠问题。下面这个例子set flp?更清楚地显示了正则表达式的样子:

formatlistpat=^\s*\(\d\+[\]:.)}\t ]-\)\s*

有关详细信息,请参阅For more information, see这个帖子

答案3

:set smartindent

如果你需要 vim 在前面换行,请添加

:set tw=30

或您需要的每行任意数量的字符。

答案4

也可以看看:http://www.adp-gmbh.ch/vim/formatting/indenting_bullets.html

但也要确保 smartindent/cindent 也没有设置。

相关内容