我知道我们可以:set tw=80
用来限制文本宽度。但是,如果我们在结尾之前插入文本,则此功能根本不起作用。
例如,假设我们输入“您希望通过电子邮件将您的问题的回复发送给您吗?”
如果我们在“?”之后继续输入,则tw
可以正常工作。但是如果我们在说“有”之前插入,即使它超过了指定的文本宽度,它也不会断行。
在后一种情况下,有什么办法可以使这项工作?
你可以试试
:set fo+=a
在您键入时重新格式化您的段落。
见:h fo-table
。
这可能可以使用formatoptions
or进行配置formatexpr
,但我不确定如何配置。
另一种解决方案是使用gq
可视线选择手动格式化,即如果文本宽度为 >= 则添加断线tw
。
V
使用( Shiftv)选择您认为格式错误的文本gq
来自:h gq
:
Format the lines that {motion} moves over.
Formatting is done with one of three methods:
1. If 'formatexpr' is not empty the expression is
evaluated. This can differ for each buffer.
2. If 'formatprg' is not empty an external program
is used.
3. Otherwise formatting is done internally.
In the third case the 'textwidth' option controls the
length of each formatted line (see below).
If the 'textwidth' option is 0, the formatted line
length is the screen width (with a maximum width of
79).
The 'formatoptions' option controls the type of
formatting fo-table.
[..]
有关 Vim 的 textwidth 如何工作的更多信息,请查看
如何像专业人士一样使用 Vim 的 textwidth