VIM commentant ce que je colle

14

Je l'ai obtenu en essayant de copier cet essentiel sur vim: https://gist.github.com/w0ng/3278077

entrez la description de l'image ici

Je remarque le même comportement partout: si je colle quelque chose qui inclut un commentaire, tout ce qui suit le commentaire est collé commenté.

Peut-être que cela a quelque chose à voir avec le fait que si j'écris un commentaire sur le mode d'insertion et que j'appuie sur Entrée, la ligne suivante ajoute automatiquement un commentaire.

Comment puis-je me débarrasser de ce comportement?

jviotti
la source

Réponses:

26

Passez en mode collage avant de coller:

:set paste

Pour revenir au mode "normal":

:set nopaste
Tapis
la source
6
ou: mettre de la pâte! to
togle
@valbaca Vous pouvez utiliser des backticks pour créer code blocksdans les commentaires
Izkata
J'avais besoin de ces commandes dans le sens inverse!
11

Outre l' pasteoption mentionnée par Mat , vous pouvez également accéder directement au presse-papiers X à partir de VIM:

  • "*p insérer la sélection X11
  • "+p insérer le presse-papiers X11

Vous avez besoin d'une version VIM avec support X11 (dans Debian et ses dérivés, vous devez installer le vim-gtkou le vim-gnomepaquet).

Pour plus d'informations, consultez la documentation ( :help x11-selection).

jofel
la source
6

Voici ce qui se passe. Il existe des options de formatage Vim qui mettent automatiquement en commentaire les nouvelles lignes lorsque vous êtes sur une ligne de commentaire. Certaines de ces options sont généralement activées par défaut. Par exemple,

# a comment<CR>
# 

Comme vous pouvez le voir, la nouvelle ligne a été automatiquement ajoutée avec un caractère de commentaire. Vous pouvez désactiver la majorité de ces options en supprimant cet à rpartir du paramètre formatoptions. Voir :h fo-tablepour plus d'informations sur ces options.

:set formatoptions-=cr

Vim n'a aucun moyen de différencier le texte collé avec les mécanismes de collage de votre émulateur de terminal et le texte que vous saisissez. La définition des options de collage ( set paste) indique à Vim de s'attendre à du texte collé et de désactiver toutes les options de formatage qui ne seraient pas souhaitables.


la source
3

Mon préféré utilise la putcommande.

  • :put* coller à partir de la sélection sur la ligne actuelle
  • :put+ coller du tampon sur la ligne courante

"*p/ "+pest également bon, mais :pu[t]présente certains avantages:

  • il colle toujours en ligne
  • vous pouvez ajouter un paramètre supplémentaire pour contrôler où insérer:
    • :$put+ coller après la dernière ligne
    • :0put+ coller au début du fichier
defhlt
la source
1

En guise de réponse secondaire, si vous avez des fichiers qui contiennent cela, vous pouvez vous en débarrasser en entrant en mode de blocage visuel vertical

ctrl+ vpuis en utilisant les touches fléchées / hjkl pour naviguer dans les parties que vous souhaitez supprimer, puis en appuyant simplement surd

Parfois, je trouve cela plus rapide que d'annuler le mode de collage, de coller et de désactiver le mode de collage.

exussum
la source