Si vous utilisez la version GUI, vous devriez vraiment coller depuis le registre du presse-papiers ( "*
) ou la sélection X11 ( "+
), comme l'a déjà suggéré echristopherson. Ainsi, au lieu de faire un clic moyen ou autre, vous naviguez à l'endroit où vous voulez coller et vous tapez "*P , y compris la citation initiale. Lors du collage via le p o P vim sait que vous collez, d'où l'utilisation de la commande 'paste
est inutile, quel que soit le registre à partir duquel vous collez.
Si vous collez à partir du terminal, vim n'a pas vraiment son mot à dire. L'émulateur de terminal déchargera tout ce que vous lui avez demandé et, dans la plupart des cas, vim ne peut pas différencier si les caractères qui continuent à entrer sont ceux que vous tapez ou ceux que vous collez. C'est pourquoi vous devez définir 'paste
pour dire à vim qu'il ne doit pas faire d'indentation et autres.
Par conséquent, si vous collez à partir du terminal, tous les caractères à coller sont mis en file d'attente en une seule fois et sont déjà envoyés à vim, il n'y a donc rien que vous puissiez faire pour l'interrompre. Du point de vue de l'émulateur de terminal, CTRL + c n'est qu'un caractère ordinaire, il est donc mis en file d'attente derrière toutes les autres choses qui attendent d'être collées. Lorsque vim voit enfin le caractère CTRL + c il est trop tard, car il n'y a plus rien à avorter.
( Mise à jour : Selon l'émulateur de terminal, CTRL + c et des signaux similaires mai être envoyés de manière prioritaire. Plus précisément, j'ai remarqué cela dans Putty, qui délivre le signal de rupture instantanément et me permet d'annuler les longues opérations de collage mal placées. Je ne sais pas vraiment comment cela fonctionne, cependant. )
Pour faire court : si possible, utiliser "*P o "+P pour coller (ce qui fonctionne même dans certains émulateurs de terminal si je me souviens bien). C'est la façon "correcte" de coller ; tout le reste est essentiellement une solution de rechange qui vous donne ce genre de maux de tête.