Vim:Inter-String Line Breaking

时间:2013-04-02 06:10:10

标签: c++ c vim line-breaks

考虑下面显示的三行。

    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),但由于两个原因,它确实令人不满意:

  1. 当字符串中的换行符时,该过程比平时稍微复杂一些。 Vim需要在虚线的末尾关闭字符串文字,并在新创建的行的开头添加字符串文字。但是在一个单词的中间断行是很尴尬的,所以Vim需要备份直到它找到一个单词边界的结尾,这样在它之后添加一个"字符就不会超过文字宽度。如果它找不到这样的单词边界,那么整个字符串需要在下一行开始。
  2. 当字符串中间的行断开时,我不希望在前一行的开头插入任何缩进。
  3. 我是否可以使用Vim或插件的任何本机功能来获取行为(1)和(2),或者我是否必须编写自己的插件?

1 个答案:

答案 0 :(得分:1)

要使用自动格式和gq进行此特殊换行符,您必须编写一个考虑到这一点的自定义'formatexpr'

我不知道任何现有的插件,但也许你找到了一些东西可以帮助你开始vim.org