在 vim 中格式化时列表会合并

在 vim 中格式化时列表会合并

我有这样的清单

- "some long line that needs to be broken into two lines" - B - C

其中 A、B、C 是某些文本的占位符。

我尝试使用这些选项进行格式化

formatprg=par\ p0s0
let &l:formatlistpat='^\s*\(\d\+[\]:.)}\t ]\|[*-][\t ]\)\s*'
setlocal formatoptions=tcqjn

我最终得到了这个

- A - B -C

我怎样才能vim简单地格式化这些行?

- "some long line that needs to be broken into two lines" - B - C

答案1

设置文本宽度

:set tw=30

然后对段落(或其他范围)执行自动换行

gq}

生产

- "some long line that needs 
   to be broken into two lines"
- B
- C

答案2

'formatlistpat'适用于内置 Vim 格式化程序。一旦定义了'formatprg',它就变得毫无意义了。您的文本似乎不需要外部格式化程序,因此只需通过 删除它即可:setlocal formatprg=

或者,您可能想了解如何par识别保留的列表项。

相关内容