2

考虑下面显示的三行。

    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. 当在字符串中间换行时,我不希望在前一行的开头插入任何缩进。

是否有任何 Vim 的本机功能或插件可用于获取行为 (1) 和 (2),还是我必须编写自己的插件?

4

1 回答 1

1

要同时使用 auto-format 和 来获得这种特殊的换行行为gq,您必须编写一个'formatexpr'考虑到这一点的自定义。

我不知道任何现有的插件,但也许你会找到一些东西让你开始使用vim.org

于 2013-04-02T06:44:12.120 回答