我经常在 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 也没有设置。