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.
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.
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).
Si vous souhaitez copier le contenu de la pâte dans le même fichier, utilisez yank
et paste
.
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.
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.
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.
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)
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.
Une fois que vous avez entré vi, appuyez sur i
pour passer en mode insertion, cliquez avec le bouton droit de la souris sur le terminal, cliquez sur coller.
Instructions détaillées pour copier/coller des lignes de texte dans vi en utilisant yank
et put
name__
(utilisez ce qui suit dans le mode commande de vi)
Copier (YANK)
Pour copier une ligne dans vi:
yy
ou tapez Y
name__Pour copier 2 lignes dans vi:
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:
yG
name__Pour copier tout le texte de l'emplacement actuel à la fin du mot actuel:
yw
name__Pour copier tout le texte de l'emplacement actuel à la fin de la ligne:
y$
Coller (PUT)
Pour coller du texte dans le presse-papiers - after l'emplacement du curseur:
p
name__Pour coller du texte dans le presse-papiers - before l'emplacement du curseur:
P
name__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.
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:
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)
Si vous êtes root: Ctrl+Shift+V
Si vous êtes non-root: Cliquez au centre de la souris.
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".