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=a
and then middle-click
- insert mode,
<C-R>+
:a!
and then use your terminal's paste command
All of these will correctly paste. The only one that confuses vim is when you use your terminal's "paste" command without first warning it.