我注意到gq当我粘贴长线时这不起作用。例如,使用textwidth=72
andformatoptions=tcroqbnl
时,gq 拒绝包装它(在插入模式下,我粘贴了整个标签内容,然后使用 退出插入模式ESC):
<label for="contact_reason_1">To get assistance with or to confirm a tire replacement recommendation</label>
如果我添加一个换行符(例如,在“to”之后),它就会换行。有趣的是,如果我重新加入这条线,它会很高兴地再次包装它。所以 VIM 似乎以某种方式记住了“哦,这是一个粘贴,不要包装它”。
如何关闭该功能?我希望 gq 在命令模式下始终工作。取出似乎没有帮助(它不应该,这不是插入模式)l
。formatoptions
澄清
是的,我正在使用运动命令,特别是gq<Right>. formatexpr
并且formatprog
都未设置。如果重要的话,这是在 Debian GNU/Linux 上的 gvim,vim 版本 7.2p284。
重现步骤
- 在打开的文件上弹出 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.
注释:最后一个句号后面有一个空格,不能让 SO 显示出来,除非这个注释在这里。乐趣。 - 按ESC,然后按A。输入
And some after.
注释:And 之前的空格,同样的 SO 问题。 - 最后按ESC一次。现在试试gq<Left>,注意它只换行
And some after.
;我无法让 vim 包装该行的其余部分(无需进入插入模式并手动进行换行,然后它就可以工作了)。
修复此状态是可行的;在“现在”之后放置一个换行符然后点击撤消使换行再次起作用。哇。