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

Oli*_*ver 4 vim indentation

我经常在 Vim 中用这样的格式写文本——

- talking point 1

- talking point 2 ....
continue on point 2
Run Code Online (Sandbox Code Playgroud)

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

- talking point 1

- talking point 2 
  continue on point 2
Run Code Online (Sandbox Code Playgroud)

这可能吗?

vbd*_*vbd 5

我的 .vimrc 中有这个:

set comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-,fb:[+],fb:[x],fb:[-]
Run Code Online (Sandbox Code Playgroud)

如果我没记错的话,在你的 .vimrc 中添加这一行,工作就会完成:

set comments +=fb:-
Run Code Online (Sandbox Code Playgroud)

有关详细说明,请尝试:

:help comments
Run Code Online (Sandbox Code Playgroud)


Kaz*_*ark 5

如果您在中n设置了标志formatoptions(例如使用set fo+=n),Vim 已经知道如何使用数字项目符号来格式化列表。formatlistpat(short name flp) 是 Vim 用来匹配它的正则表达式,所以您需要的是增强该正则表达式。这应该对你有用(但只增加了对-子弹的支持):

set formatlistpat=^\\s*\\(\\d\\+[\\]:.)}\\t\ ]\\|-\\)\\s*
Run Code Online (Sandbox Code Playgroud)

很抱歉那里的反斜杠头疼。做set flp?更清楚地显示正则表达式的样子:

formatlistpat=^\s*\(\d\+[\]:.)}\t ]-\)\s*
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此帖子