【发布时间】:2013-04-02 06:10:10
【问题描述】:
考虑下面显示的三行。
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),还是我必须编写自己的插件?
【问题讨论】:
-
this answer 有帮助吗?
-
@chb 我希望获得与使用
gq时手动换行相同的结果,或者让Vim 在我键入时自动为我换行。有没有办法修改该解决方案,以便我可以实现这一点(以及行为(1))?
标签: c++ c vim line-breaks