http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
Alternar recuo automático para colar código
fundo
Se você usar os comandos do Vim para colar texto, nada de inesperado ocorrerá. O problema só surge ao colar a partir de outro aplicativo e somente quando você não está usando uma versão GUI do Vim. Em uma versão de console ou terminal do Vim, não há procedimento padrão para colar texto de outro aplicativo. Em vez disso, o terminal pode emular a colagem inserindo texto no buffer do teclado, para que o Vim pense que o texto foi digitado pelo usuário. Após o término de cada linha, o Vim pode mover o cursor para que a próxima linha comece com o mesmo recuo que a última. No entanto, isso mudará a indentação já no texto colado.
Colar alternar
Coloque o seguinte no seu vimrc (mude para a chave que desejar):
set pastetoggle=<F2>
Para colar de outro aplicativo:
- Inicie o modo de inserção.
- Pressione F2 (ativa a opção 'colar').
- Use seu terminal para colar texto da área de transferência.
- Pressione F2 (desativa a opção 'colar').
Em seguida, o recuo existente do texto colado será mantido.
Você não precisa iniciar o modo de inserção primeiro, mas se estiver no modo normal e tiver um mapeamento para F2, esse mapeamento será aplicado e a função 'pastetoggle' não funcionará.
Algumas pessoas gostam do feedback visual mostrado na linha de status pela seguinte alternativa para o seu vimrc:
nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode
A primeira linha define um mapeamento para que pressionar F2 no modo normal inverta a opção 'colar' e, em seguida, mostre o valor dessa opção. A segunda linha permite pressionar F2 no modo de inserção, para ativar e desativar 'colar'. A terceira linha permite exibir se 'colar' está ativado no modo de inserção.