Se você estiver usando a versão da GUI, você deve realmente colar o registrador da área de transferência ( "*
) ou a seleção X11 ( "+
), como já sugerido por echristopherson. Então, ao invés de clicar com o botão do meio ou qualquer coisa, você navega onde quer colar e então digita " * P , incluindo p ou P , o vim sabe que você está colando, portanto a opção 'paste
é desnecessária - não importa de qual registrador você está colando.
Se você está colando no terminal, o vim não tem nada a dizer sobre o assunto. O emulador de terminal despejará tudo o que você instruiu e, na maioria dos casos, o vim não pode diferenciar se os caracteres que continuam aparecendo estão sendo digitados ou colados. Portanto, você precisa definir 'paste
para informar ao vim que ele não deve fazer recuos e outras coisas.
Como conseqüência, se você estiver colando do terminal, todos os caracteres a serem colados serão enfileirados de uma só vez e, essencialmente, já foram enviados para o vim, portanto, não há realmente nada que você possa fazer para interrompê-lo. Do ponto de vista do emulador de terminal, CTRL + c é apenas um caractere comum, portanto ele fica na fila atrás de todas as outras coisas que estão esperando para serem coladas. Quando o vim finalmente consegue ver a CTRL + c , é tarde demais, já que não há mais nada a ser abortado.
(Atualização: Dependendo do emulador de terminal, CTRL + c e sinais similares podem ser enviados de forma prioritária. Especificamente, eu Notei isso em Putty, que entrega o sinal de quebra instantaneamente e, na verdade, permite que eu aborte as operações de colar longas e extraviadas. Eu não sei como isso funciona, no entanto.)
Longa história curta: Se for possível, use " * P ou " + P para colar (o que funciona em alguns emuladores de terminal se bem me lembro). Essa é a maneira "correta" de colar; tudo o mais é basicamente uma solução alternativa que lhe dá esse tipo de dor de cabeça.