I use some maps while I code :
imap ( ()<C-[>i imap [ []<C-[>i imap { {}<C-[>i
so that when I put ‘(‘ , it writes ‘()’ (same thing for ‘[‘ and ‘{‘ ). The problem is that when i paste something into Vim :
for (i = 0; i < count; i++) { tab[i] = something() }
I get
for (i = 0; i < count; i++) { tab[i] = something() } )]})
Is it possible to avoid the extra brackets?
You want the
'paste'option; set it with:set paste. It disables insert mode mappings, abbreviations, and other autoformatting options.The other thing is that there are multiple ways to paste:
'+p:set mouse=aand then middle-click<C-R>+:a!and then use your terminal’s paste commandAll of these will correctly paste. The only one that confuses vim is when you use your terminal’s ‘paste’ command without first warning it.