【问题标题】:Vim: Inter-String Line BreakingVim:字符串间换行
【发布时间】: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),但它的效果并不令人满意,原因有两个:

  1. 当换行符在一个字符串上时,这个过程比平常稍微复杂一些。 Vim 需要在断行的末尾关闭字符串文字,并在新创建的行的开头添加一个字符串文字。但是在单词中间换行会很尴尬,所以Vim需要备份直到找到单词边界的结尾,这样在它之后添加一个"字符就不会超过文本宽度.如果找不到这样的单词边界,则整个字符串需要从下一行开始。
  2. 当在字符串中间换行时,我不希望在后续行的开头插入任何缩进。

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

【问题讨论】:

  • this answer 有帮助吗?
  • @chb 我希望获得与使用gq 时手动换行相同的结果,或者让Vim 在我键入时自动为我换行。有没有办法修改该解决方案,以便我可以实现这一点(以及行为(1))?

标签: c++ c vim line-breaks


【解决方案1】:

要让自动格式和gq 都具有这种特殊的换行行为,您必须编写一个自定义'formatexpr' 来考虑这一点。

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

【讨论】:

    猜你喜欢
    • 2011-04-28
    • 1970-01-01
    • 2013-11-28
    • 2023-03-22
    • 2021-08-19
    • 2017-06-03
    • 2010-09-09
    相关资源
    最近更新 更多