Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Vim:串间断线_C++_C_Vim_Line Breaks - Fatal编程技术网

C++ Vim:串间断线

C++ Vim:串间断线,c++,c,vim,line-breaks,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),但由于两个原因,它不能令人满意: 当一行在字符串上断开时,过程比通常要复杂一些。Vim需要在虚线的末尾关闭字符串文字,并在

考虑下面显示的三行

    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),或者我是否必须编写自己的插件?

    要同时使用自动格式化和
    gq
    实现这种特殊的换行行为,您必须编写一个考虑到这一点的自定义
    'formatexpr'


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

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