当前位置:  开发笔记 > 运维 > 正文

在Vim包裹长行?

如何解决《在Vim包裹长行?》经验,为你挑选了1个好方法。

我注意到,gq当我粘贴一条长行时,这不起作用.例如,使用textwidth=72formatoptions=tcroqbnl,gq拒绝包装它(在插入模式下,我粘贴了整个标签内容,然后退出插入模式ESC):


如果我在(在"to"之后)添加换行符,那么它将换行.有趣的是,如果我一起加入这条线,它会很高兴再次包裹它.所以VIM似乎在某种程度上记得"哦,这是一个粘贴,不要包装它".

如何关闭该功能?我希望gq在命令模式下始终有效.以lformatoptions似乎并没有帮助(它不应该,这不是插入模式).


澄清

是的,特别是我正在使用动作命令gq.formatexpr并且formatprog都未设置.如果重要的话,这是在Debian GNU/Linux,vim版本7.2p284上的gvim中.

重现步骤

    在打开的文件上弹出gvim.

    i进入插入模式,然后键入This is a long line. A long line. But not wrappable yet. Or yet. Soon.

    ESC,然后I.键入Now putting text in front of the long line. 注释:在最后一段时间后有一个空格,无法显示它,除非此注释在此处.FUN.

    ESC,然后A.键入And some after. 注释:And之前的空格,同样的SO问题.

    ESC最后一次按.现在尝试gq,注意它只包装And some after.; 我不能让vim包装剩余的行(没有进入插入模式并手动执行换行,然后它工作).

修复这种状态是可行的; 在"now"之后添加换行符然后点击撤消会使换行再次运行.WTF.



1> jamessan..:

gq不足以包装文本.你必须给它一个动作来包装(比如gqj)或告诉它包装当前行gqq.你确定你不只是错误的吗?

如果你不是,有什么formatexprformatprg选择设置,如果有的话?

更新
问题是b设置formatoptions.这告诉Vim只包装上次插入时添加的文本.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有