web-dev-qa-db-fra.com

Comment copier le contenu de la pâte dans l'éditeur vi

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

150
Rpj

Tout d’abord, assurez-vous d’être en mode édition (appuyez sur i). Ensuite, vous pouvez 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 l'indentation automatisée, etc. Ensuite, :set nopaste après avoir collé le contenu.

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

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

179
Attila O.

Vi (et Vim) fonctionne très différemment par rapport à un éditeur de texte tel que Gedit. Il a également une courbe d'apprentissage assez raide. Si vous voulez apprendre quelques commandes de base, commencez par ce tutoriel 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, à partir du mode Normal, appuyer sur: "+p (Pas en même temps, mais l'un après l'autre).

62
Daniel Jonsson
  1. Si vous souhaitez copier le contenu de la pâte dans le même fichier, utilisez yank et paste.

  2. Si vous voulez copier le contenu de la pâte à travers les terminaux, ouvrez le premier fichier en supprimant 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 de la pâte de vim vers un programme externe, vous devez accéder au Presse-papiers du système. Je suppose que vous utilisez Ubuntu. La version graphique de vim a toujours la prise en charge du presse-papiers. Toutefois, si vous souhaitez utiliser Vim depuis un terminal, vous devez vérifier la prise en charge de la prise en charge du presse-papiers X11.

    Sur la console, tapez:

    $ vim --version | grep xterm
    

    Si vous trouvez - xterm_clipboard, vous avez deux options:

    1) Compilez vim vous-même, avec le drapeau xterm_clipboard sur

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

    Maintenant, lorsque vous extrayez du texte dans le registre + dans votre éditeur vim (par exemple, "+ yy), il est également copié dans le Presse-papiers du système que vous pouvez récupérer à partir de votre programme externe, comme gedit editor, en utilisant Ctrl+V.

  4. Si vous voulez copier le contenu de la pâte depuis un programme externe dans vim, commencez par copier votre texte dans le presse-papiers du système via Ctrl+C, puis dans l'éditeur vim mode insertion, cliquez sur le bouton bouton central de la souris (généralement la molette) ou appuyez sur Ctrl+Shift+V coller.

    Ce sont 4 conditions de base copier/coller liées à vim. J'espère que ça aide.

28
47dev47null

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

(C’est aussi la raison pour laquelle je n’ai jamais un ordinateur portable sur lequel vous ne pouvez appuyer Insert sans appuyer sur une touche secondaire)

17
Magnus Jonsson

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

C'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.

10
will-ob

Une fois que vous avez entré vi, appuyez sur ipour passer en mode insertion, cliquez avec le bouton droit de la souris sur le terminal, cliquez sur coller.

5
GC 13

Instructions détaillées pour copier/coller des lignes de texte dans vi en utilisant yanket putname__

(utilisez ce qui suit dans le mode commande de vi)

Copier (YANK)

Pour copier une ligne dans vi:

  • En mode commande, déplacez le curseur sur la ligne à copier et tapez yyou tapez Yname__

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, n'importe quel nombre de lignes peut être copié)

Pour copier toutes les lignes de l'emplacement actuel à la fin du fichier:

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

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

  • En mode commande, déplacez le curseur à l'emplacement où vous souhaitez copier le texte et saisissez ywname__

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

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

Coller (PUT)

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

  • En mode commande, tapez pname__

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

  • En mode commande, tapez Pname__
5
slayernoah

J'ai eu 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 supporte 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 peux copier et coller en utilisant "+ y et" + p respectivement.

1

Je voulais simplement noter que, si vous utilisez 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 à travers PuTTY , vous pouvez cliquer avec le bouton droit de la souris. Et en soulignant fait la copie.

Je l'ai noté parce que je ne suis pas arrivé ici parce que c'est SE pour Ubuntu.

Autres commandes utiles:

  • yy(nombre de lignes) - yank (copie)
  • dd(nombre de lignes) - supprimer
  • p - coller la ligne sous la ligne actuelle
  • Shift + p - coller la ligne au-dessus de la ligne actuelle
  • u - annuler
  • r - refaire
  • i - mode d'insertion
  • v - mode visuel
0
Tyler Christian

Vous pourriez utiliser Ctrl+Shift+V coller dans la version de terminal vim, mais pour la version graphique vim comme Neovim-Qt, coller du texte à partir du presse-papiers du système avec Ctrl+Shift+V tout simplement ne fonctionnera pas. Vous devez accéder au presse-papiers "+ ou "* dans l'éditeur vim.

L'ajout d'une nouvelle liaison dans .vimrc se fera simplement par les commandes copier/coller:

" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
0
Yossarian42

Si vous êtes rootCtrl+Shift+V

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

0
Elliptical view

Si vous souhaitez coller du texte depuis vim extérieur, copiez-le et placez-le dans vim en mode Insertion, appuyez sur "shift + Insérer".

0
xollad