【发布时间】:2010-12-24 20:19:21
【问题描述】:
我注意到当我粘贴长行时 gq 不起作用。例如,对于textwidth=72 和formatoptions=tcroqbnl,gq 拒绝包装它(在插入模式下,我粘贴了整个标签内容,然后用 ESC 退出插入模式):
<label for="contact_reason_1">To get assistance with or to confirm a tire replacement recommendation</label>
如果我添加一个换行符(例如,在“to”之后),它就会换行。有趣的是,如果我重新加入这条线,它会很高兴地再次包装它。所以 VIM 似乎以某种方式记住了“哦,这是一个粘贴,不要包装它”。
如何关闭该功能?我希望 gq 在命令模式下始终工作。从formatoptions 中取出l 似乎没有帮助(它不应该,这不是插入模式)。
澄清
是的,我正在使用运动命令,特别是 gqformatexpr 和 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 前面有空格,同样的问题。 - 最后一次按 ESC。现在试试gq
,注意它只包裹 And some after.;我无法让 vim 换行其余部分(不进入插入模式并手动换行,然后它就可以了)。
修复此状态是可行的;在“现在”之后放置一个换行符然后点击撤消使换行再次起作用。见鬼。
【问题讨论】:
-
转载并获得了“好”的结果,抱歉。我的答案下的详细信息。