Comment copier le contenu d'un collage dans l'éditeur vi

112

J'ai essayé d'utiliser Ctrl + V pour coller du contenu dans un document d'éditeur vi, mais Ctrl + V n'est pas interprété comme un collage.

    
posée Rpj 16.02.2013 - 09:13
la source

10 réponses

134

Tout d'abord, assurez-vous d'être en mode édition (appuyez sur i ). Vous pouvez alors coller avec Ctrl + Shift + V , si vous êtes dans un émulateur de terminal tel que gnome-terminal (ou sélectionnez "Coller" dans le menu contextuel).

Vous pouvez également taper :set paste dans vim avant de coller pour désactiver le retrait automatique, etc. Ensuite, :set nopaste après avoir collé le contenu.

Consultez également cette question sur stackoverflow.com pour plus d'informations.

Si vous souhaitez copier / coller des lignes dans vim (par opposition au collage du contenu du presse-papiers), vous souhaitez extraire la commande yank . Voici un aide-mémoire qui pourrait vous aider.

    
réponse donnée Attila O. 16.02.2013 - 09:27
la source
52

Vi (et Vim) fonctionnent très différemment par rapport à un éditeur de texte normal tel que Gedit. Il a également une courbe d'apprentissage assez raide. Si vous souhaitez apprendre certaines commandes de base, commencez par ce didacticiel interactif .

Cependant, pour répondre à votre question. Le contenu du presse-papiers du système est accessible via le registre plus. Donc, pour coller quelque chose dans le presse-papiers du système, vous pouvez, en mode Normal, appuyer sur: "+ p (pas en même temps, mais l'un après l'autre).

    
réponse donnée Daniel Jonsson 16.02.2013 - 09:34
la source
22
  1. Si vous souhaitez copier le contenu du collage dans le même fichier , utilisez yank et paste .

  2. Si vous souhaitez copier le contenu du collage sur les terminaux , ouvrez le premier fichier, saisissez le texte souhaité, puis ouvrez votre deuxième fichier dans vim (par exemple :tabnew /path/to/second/file ) et appuyez sur p pour le coller.

  3. Si vous souhaitez copier le contenu du collage de vim dans un programme externe , vous devez accéder au presse-papiers du système. Je suppose que vous utilisez Ubuntu. La version de l'interface graphique de vim a toujours la prise en charge du presse-papiers, cependant, si vous souhaitez utiliser Vim depuis un terminal, vous devrez vérifier la prise en charge du presse-papiers X11.

    De la console, tapez:

    $ vim --version | grep xterm
    

    Si vous trouvez -xterm_clipboard , vous avez deux options:

    1) Compilez vim vous-même, avec l'indicateur xterm_clipboard sur

    2) Désinstallez vim, installez gvim (vim-gtk ou vim-gnome) à la place. Vous pouvez vous en tenir au non-gui vim en appelant vim depuis le terminal, comme vous l'avez fait auparavant. Cette fois, lorsque vous vérifiez, vous devriez trouver + xterm_clipborad .

    Maintenant, quand vous tirez du texte dans le registre + à l’intérieur de votre éditeur vim (par exemple "+ yy), il est également copié dans le presse-papiers du système comme l’éditeur gedit, en utilisant Ctrl + V .

  4. Si vous souhaitez copier le contenu du collage d’un programme externe dans vim , copiez d’abord votre texte dans le presse-papier du système via Ctrl + C , puis dans l'éditeur de vim insérer le mode , cliquez sur le bouton central de la souris (généralement la molette) ou appuyez sur Ctrl + Shift + V à coller.

    Ce sont 4 copie & amp; coller les conditions liées à vim. J'espère que cela aide.

réponse donnée 47dev47null 20.02.2013 - 06:53
la source
14

J'utilise toujours Shift + Insérer lorsque je veux coller du texte dans le terminal, fonctionne dans tous les programmes de terminal.

(Ce qui explique aussi pourquoi je ne reçois jamais d’ordinateur portable sur lequel vous ne pouvez pas appuyer sur Insérer sans appuyer sur une touche secondaire)

    
réponse donnée Magnus Jonsson 17.02.2013 - 17:59
la source
10

Utilisez le bouton central de la souris pour insérer le texte que vous avez mis en évidence ailleurs.

Il est utile lorsque vous n’avez pas accès au presse-papiers de votre système (par exemple, dans une session SSH distante).

Doit être en mode édition / insertion pour Vim.

    
réponse donnée will-ob 16.02.2013 - 17:09
la source
5

Une fois que vous entrez vi, appuyez sur i pour accéder au mode insertion, cliquez avec le bouton droit sur le terminal, cliquez sur Coller.

    
réponse donnée GC 13 17.02.2013 - 07:34
la source
3

Instructions détaillées pour copier / coller des lignes de texte en vi en utilisant yank et put

(utilisez les éléments suivants dans le mode de commande de vi)

Copier (YANK)

Pour copier une ligne dans vi:

  • En mode commande, déplacez le curseur sur la ligne à copier et tapez yy ou tapez Y

Pour copier 2 lignes dans vi:

  • En mode commande, déplacez le curseur sur la première ligne à copier et tapez 2yy ou tapez 2Y

(de même, un nombre quelconque de lignes peut être copié)

Pour copier toutes les lignes de l’emplacement actuel vers la fin du fichier:

  • En mode commande, déplacez le curseur sur la première ligne à copier et tapez yG

Pour copier tout le texte de l’emplacement actuel à la fin du mot actuel:

  • En mode commande, déplacez le curseur vers l’endroit où le texte doit être copié et tapez yw

Pour copier tout le texte de l’emplacement actuel à la fin de la ligne:

  • En mode commande, déplacez le curseur vers l’endroit où le texte doit être copié et tapez y$

Coller (PUT)

Pour coller du texte dans le Presse-papiers - après l’emplacement du curseur:

  • En mode commande, tapez p

Pour coller du texte dans le presse-papiers - avant l'emplacement du curseur:

  • En mode commande, tapez P
réponse donnée slayernoah 03.11.2013 - 22:43
la source
0

Si vous êtes root : Ctrl + Shift + V

Si vous êtes non-root : cliquez au centre de la souris.

    
réponse donnée Eliptical view 01.07.2017 - 08:54
la source
0

Je voulais juste noter que, en utilisant Vim via Git Bash sous Windows, vous pouvez simplement utiliser p ou un clic central de la souris sans être en mode insertion. En utilisant Vim via PuTTY , vous pouvez simplement faire un clic droit. Et la mise en évidence fait la copie.

J'ai noté ceci parce que je suis arrivé ici sans voir que c'est SE pour Ubuntu.

Autres commandes utiles:

  • yy (# de lignes) - yank (copie)
  • dd (# de lignes) - delete
  • p - collez la ligne sous la ligne courante
  • Shift + p - collez la ligne au-dessus de la ligne courante
  • u - annuler
  • r - refaire
  • i - mode d'insertion
  • v - mode visuel
réponse donnée Tyler Christian 21.07.2017 - 05:27
la source
0

J'avais un problème car mon installation de Vim ne supportait pas le presse-papier :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

J'ai installé vim-gnome (qui prend en charge le presse-papiers) puis vérifié à nouveau:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Maintenant, je suis capable de copier et coller en utilisant "+ y et" + p respectivement.

    
réponse donnée Ashutosh Tripathy 09.06.2018 - 13:35
la source

Lire d'autres questions sur les étiquettes