【问题标题】:How to avoid extra brackets from appearing while I paste into Vim粘贴到 Vim 时如何避免出现额外的括号
【发布时间】:2009-03-20 23:55:55
【问题描述】:

我在编码时使用了一些地图:

imap ( ()<C-[>i
imap [ []<C-[>i
imap { {}<C-[>i

所以当我输入 "(" 时,它会写入 "()" (对于 "[" 和 "{" 也是如此)。 问题是当我将一些东西粘贴到 Vim 中时:

for (i = 0; i < count; i++) {
tab[i] = something()
}  

我明白了

for (i = 0; i < count; i++) {
tab[i] = something()
}  
)]})

是否可以避免多余的括号?

【问题讨论】:

    标签: vim mapping


    【解决方案1】:

    您想要'paste' 选项;用:set paste 设置它。它禁用插入模式映射、缩写和其他自动格式化选项。

    另外,粘贴的方式有多种:

    • "+p
    • :set mouse=a 然后中键点击
    • 插入模式,&lt;C-R&gt;+
    • :a! 然后使用终端的粘贴命令

    所有这些都会正确粘贴。唯一让 vim 感到困惑的是,当您使用终端的“粘贴”命令而没有事先警告它时。

    【讨论】:

    • 谢谢。这就是我想要的。如果我想启用我的缩写,我必须这样做:set nopaste
    • 我喜欢做的一件事是绑定一个功能键来切换一个选项,比如map &lt;F4&gt; :set paste!^M。 (您必须将 ^M 键入为 。)
    • 您可以使用 而不是使用 ^V 键入 ^M,这样更便携。您还可以使用以下映射: map :set paste! paste? 以便在按 F4 后您会看到选项的新状态。
    • ":set paste! paste?" 这是一个很棒的技巧,保罗,谢谢你提到它!
    • 实际上有一个专门用于设置粘贴模式切换键的命令:set pastetoggle=&lt;F5&gt;。当然,您可以将其设置为您喜欢的任何键。
    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2015-10-10
    • 1970-01-01
    • 2014-06-10
    • 2013-04-09
    • 1970-01-01
    相关资源
    最近更新 更多