我注意到,gq当我粘贴一条长行时,这不起作用.例如,使用textwidth=72
和formatoptions=tcroqbnl
,gq拒绝包装它(在插入模式下,我粘贴了整个标签内容,然后退出插入模式ESC):
如果我在(在"to"之后)添加换行符,那么它将换行.有趣的是,如果我一起加入这条线,它会很高兴再次包裹它.所以VIM似乎在某种程度上记得"哦,这是一个粘贴,不要包装它".
如何关闭该功能?我希望gq在命令模式下始终有效.以l
出formatoptions
似乎并没有帮助(它不应该,这不是插入模式).
是的,特别是我正在使用动作命令gqformatexpr
并且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最后一次按.现在尝试gqAnd some after.
; 我不能让vim包装剩余的行(没有进入插入模式并手动执行换行,然后它工作).
修复这种状态是可行的; 在"now"之后添加换行符然后点击撤消会使换行再次运行.WTF.
gq不足以包装文本.你必须给它一个动作来包装(比如gqj)或告诉它包装当前行gqq.你确定你不只是错误的吗?
如果你不是,有什么formatexpr
和formatprg
选择设置,如果有的话?
更新
问题是b设置formatoptions
.这告诉Vim只包装上次插入时添加的文本.