用Vim包装长线?

用Vim包装长线?,vim,paste,word-wrap,Vim,Paste,Word Wrap,我注意到,当我在一条长线中粘贴时,gq不起作用。例如,使用textwidth=72和formatoptions=tcroqbnl,gq拒绝将其包装(在插入模式下,我粘贴了整个标签内容,然后使用ESC退出插入模式): 获得有关轮胎更换建议的帮助或确认轮胎更换建议 如果我添加一个换行符(例如,在“to”之后),那么它将换行。有趣的是,如果我把这条线重新连接起来,它会很高兴地再次把它包起来。所以VIM似乎不知何故记住了“哦,这是一个浆糊,不要包装它” 如何关闭该功能?我希望gq在命令模式下始终工作。

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

获得有关轮胎更换建议的帮助或确认轮胎更换建议
如果我添加一个换行符(例如,在“to”之后),那么它将换行。有趣的是,如果我把这条线重新连接起来,它会很高兴地再次把它包起来。所以VIM似乎不知何故记住了“哦,这是一个浆糊,不要包装它”

如何关闭该功能?我希望gq在命令模式下始终工作。将
l
formatoptions
中取出似乎没有帮助(也不应该,这不是插入模式)


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

复制步骤
  • 在打开的文件上弹出gvim
  • 按i键进入插入模式,然后键入
    这是一条长线。长长的队伍。但还没有包装好。或者现在。很快。
  • 按ESC键,然后按I键。键入
    ,现在将文本放在长行前面。
    注意:最后一个句点后有一个空格,无法显示它,除非此注释在此处。有趣
  • 按ESC键,然后按A键。键入
    和后面的部分。
    注意:和之前的空格,与SO问题相同
  • 最后按一次ESC键。现在试试gq,注意它只包装
    ,后面还有一些包装。
    ;我无法让vim包装该行的其余部分(如果不进入插入模式并手动执行换行,那么它就可以工作)
  • 修复这种状态是可行的;在“现在”之后加上一个换行符,然后点击“撤消”使换行再次起作用。WTF.

    gq不足以包装文本。你必须给它一个动作来包装(比如gqj),或者告诉它用gqq包装当前行。你确定你没有打错吗

    如果没有,那么
    formatexpr
    formatprg
    选项设置为什么

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

    我发现,如果在执行gq之前选择行,效果很好。gq不想与一些文本选择操作结合使用吗

    更新

    我确认这个错误。运行vim-u NONE时,我的
    格式选项是
    vt


    也许Bram Molenar或至少vim社区会感兴趣?

    正是我所想的,+1是的,我正在给它一个动议。它在其他线路上也能起作用,所以我很确定它能起作用。我一直在尝试gq,它通常是有效的。我将更新问题。gq不应该换行的唯一情况是1)行没有空格,2)行短于“textwidth”,3)“formatexpr”/“formatprg”已设置,并且调用的函数/程序不换行。由于这些情况在这里似乎都不起作用,我不确定您为什么会看到这种行为。我添加了一些步骤来重现类似的问题。这只发生在我身上吗?我用gvim-u NONE试过了,所以它不是我的vimrc。谢谢你的澄清。问题在于
    formatoptions
    中的b设置。这告诉Vim只包装上次插入时添加的文本。请参阅我的说明和复制步骤。我不知道像left这样的小动作足以导致包装,但确实如此!我忠实地按照您的步骤复制,并在“但是”之前完成了一个包装,这在我看来完全正确。我正在Ubuntu 9.10上使用vim 7.2.245开箱即用。如果你告诉我什么,我可以做更多的测试。“开箱即用”是个谎言。my.vimrc有:“卡尔的vim设置syn on set sts=3 set ai set sw=3@Carl:您的发行版(Ubuntu)可能在/etc/vim/vimrc和/etc/vim中有一些定制/gvimrc@Carl:该
    -u NONE
    也将跳过/etc中的系统初始化;请参阅vim中的
    :help initialization
    。复制并获得“良好”的结果“结果,对不起。细节在我的回答下。
    <label for="contact_reason_1">To get assistance with or to confirm a tire replacement recommendation</label>