如何在粘贴到Vim时避免出现额外的括号

时间:2009-03-20 23:55:56

标签: vim mapping

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

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()
}  
)]})

是否可以避免使用额外的括号?

1 个答案:

答案 0 :(得分:11)

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

另一方面是有多种粘贴方式:

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

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