考虑下面显示的三行。
std::ostringstream ss;
cc::write(ss, "Error parsing first magic byte of header: expected 'P', but got '{0}'.", c);
return io_error{ss.str()};
第二行自动中断,因为它超出了文本宽度 ( &tw
),但由于以下两个原因,它无法令人满意:
- 当在字符串上换行时,该过程比平时要复杂一些。Vim 需要在断行的末尾关闭字符串文字,并在新创建的行的开头添加一个字符串文字。但是在单词中间换行会很尴尬,所以 Vim 需要备份直到找到单词边界的结尾,这样
"
在它之后添加一个字符就不会超过文本宽度。如果找不到这样的单词边界,则整个字符串需要从下一行开始。 - 当在字符串中间换行时,我不希望在前一行的开头插入任何缩进。
是否有任何 Vim 的本机功能或插件可用于获取行为 (1) 和 (2),还是我必须编写自己的插件?