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

Tau*_*son 6 mapping vim

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

imap ( ()<C-[>i
imap [ []<C-[>i
imap { {}<C-[>i
Run Code Online (Sandbox Code Playgroud)

所以,当我把"(",它写成"()"("["和"{")相同的东西.问题是,当我将东西粘贴到Vim时:

for (i = 0; i < count; i++) {
tab[i] = something()
}  
Run Code Online (Sandbox Code Playgroud)

我明白了

for (i = 0; i < count; i++) {
tab[i] = something()
}  
)]})
Run Code Online (Sandbox Code Playgroud)

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

Jos*_*Lee 11

你想要的'paste'选择; 设置它:set paste.它禁用插入模式映射,缩写和其他自动格式选项.

另一件事是有多种粘贴方式:

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

所有这些都将正确粘贴.唯一让vim感到困惑的是当你使用终端的"粘贴"命令而没有先警告它时.