J'ai essayé d'utiliser Ctrl+ Vpour coller du contenu dans un document de l'éditeur vi, mais Ctrl+ Vn'est pas interprété comme un collage .
J'ai essayé d'utiliser Ctrl+ Vpour coller du contenu dans un document de l'éditeur vi, mais Ctrl+ Vn'est pas interprété comme un collage .
Réponses:
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 comme gnome-terminal
(ou sélectionnez "Coller" dans le menu contextuel).
Vous pouvez également taper :set paste
vim avant de coller pour désactiver l'indentation automatisée, etc. Après :set nopaste
avoir collé le contenu.
Consultez également cette question sur stackoverflow.com pour plus d'informations.
Si vous souhaitez copier / coller des lignes 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.
I
est sensible à la casse. La minuscule i
est la manière habituelle d’entrer en mode insertion. Capital I
amène le curseur au début de la ligne, puis vous met en mode insertion.
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 souhaitez 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 les uns après les autres).
vi
pasvim
set :paste
).
Si vous souhaitez copier le contenu de la colle dans le même fichier , utilisez yank
et paste
.
Si vous souhaitez copier le contenu de la pâte sur les terminaux , ouvrez le premier fichier, en éditant 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 coller de vim dans 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 plutôt gvim (vim-gtk ou vim-gnome). Vous pouvez vous en tenir à vim non-gui en appelant vim depuis le terminal, comme vous le faisiez auparavant. Lorsque vous vérifiez, vous devriez trouver + xterm_clipborad .
Désormais, 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 extraire de votre programme externe, tel que l'éditeur gedit, en utilisant Ctrl+ V.
Si vous souhaitez copier le contenu collé d'un programme externe dans vim , copiez d'abord votre texte dans le presse-papiers du système via Ctrl+ C, puis en mode insertion de l' éditeur vim , cliquez sur le bouton central de la souris (généralement la molette) ou appuyez sur Ctrl+ Shift+ Vpour coller.
Ce sont 4 conditions de base copier / coller liées à vim. J'espère que ça aide.
vim-gtk
a un xterm_clipboard
support et Fedora l’ xvim
a.
J'utilise toujours Shift+ Insertlorsque je veux coller du texte dans le terminal, cela fonctionne dans tous les programmes du terminal.
(C'est aussi la raison pour laquelle je n'ai jamais un ordinateur portable sur lequel vous ne pouvez appuyer Insertsans appuyer sur une touche secondaire)
Vi
/ Vim
! = terminal;)
Ctrl+A
, Ctrl+C
aussi?
Une fois que vous avez entré vi, appuyez sur i
pour entrer en mode insertion, faites un clic droit sur le terminal, cliquez sur coller.
i
. Que font les majuscules I
?
i
. Les majuscules I
déplacent le curseur au début de la ligne avant d'entrer en mode insertion, ce qui n'est pas nécessaire ici.
Instructions détaillées pour copier / coller des lignes de texte dans vi en utilisant yank
etput
(utilisez ce qui suit dans le mode de commande de vi)
Copier (YANK)
Pour copier une ligne dans vi:
yy
ou tapezY
Pour copier 2 lignes dans vi:
2yy
ou tapez2Y
(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
Pour copier tout le texte de l'emplacement actuel à la fin du mot actuel:
yw
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 - après l'emplacement du curseur:
p
Pour coller du texte dans le presse-papiers - avant l'emplacement du curseur:
P
J'ai eu un problème, car mon installation de Vim ne supportait pas le presse-papiers :
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.
Avec Vim 8+ sous Linux ou Mac, vous pouvez désormais utiliser simplement le collage natif du système d'exploitation ( ctrl+shift+V
sous Linux, cmd+V
sur Mac). Ne pas appuyer sur i
pour le mode insertion.
Il collera le contenu du presse-papiers de votre système d'exploitation, en préservant les espaces et les onglets sans ajouter d'auto-identification. Il est équivalent à l'ancienne :set paste
, i
, ctrl+shift+V
, esc
, :set nopaste
méthode.
Vous n'avez même plus besoin d'installer les fonctionnalités de +clipboard
ou +xterm_clipboard
vim. Cette fonctionnalité est appelée "pâte entre crochets". Pour plus de détails, voir https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
Si vous êtes root : Ctrl+ Shift+V
Si vous n'êtes pas root : Cliquez au centre de la souris.
Je voulais juste noter que, si vous utilisez Vim via Git Bash sous Windows, vous pouvez simplement utiliser p
ou cliquer au centre de la souris sans être en mode insertion. En utilisant Vim via PuTTY , vous pouvez faire un clic droit. 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 pouvez utiliser Ctrl+ Shift+ Vpour coller dans la version de terminal vim, mais pour la version graphique Neovim-Qt
, comme par exemple , coller du texte depuis le Presse-papiers du système avec Ctrl+ Shift+ Vne fonctionnera tout simplement pas. Vous devez accéder au presse-papiers "+
ou "*
à l'éditeur vim.
Ajouter un nouveau raccourci clavier .vimrc
simplement 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)
vimtutor
Il vous permettra de vous familiariser avec l'endroit où vous pourrez l'utiliser en environ 45 minutes.