Jessaye de copier-coller du texte de vim. Je « fais v pour passer en mode visuel, puis y une fois que jai sélectionné mon bloc.
Il semble copier le texte dans le presse-papiers de vim, parce que p le collera. Mais dans un autre programme (par exemple Chrome), un clic droit-> coller ne colle pas le texte correct. Comment copier du texte dans le bon presse-papiers?
Réponse
Ce qui suit ne fonctionnera que si vim --version
indique que vous disposez de la fonctionnalité +xterm_clipboard
. Sinon, vous devrez installer des packages supplémentaires ou recompiler vim avec cette fonctionnalité ajoutée.
Il existe en fait deux options pour cela:
"+y
copie dans le tampon du presse-papiers « habituel » (vous pouvez donc coller en utilisant Ctrl + V, cliquez avec le bouton droit et sélectionnez « Coller », etc.), tandis que
"*y
copie dans la sélection X11 – vous pouvez coller à partir de ce tampon en utilisant le clic central.
Notez que "*
et "+
fonctionne dans les deux sens. Donc, si vous avez sélectionné du texte dans une autre application, vous pouvez le coller dans vim en utilisant "*p
et si vous avez copié du texte (en utilisant, par exemple, Ctrl-C), vous pouvez le coller dans vim en utilisant "+p
.
Commentaires
Réponse
Si vous utilisez vim> = 7.3 .74, alors vous pouvez effectivement mettre ceci dans votre vimrc:
set clipboard=unnamedplus
qui utilisera automatiquement le tampon +
(le presse-papiers système) par défaut. Ensuite, pour copier (copier), il vous suffit dutiliser la commande y
régulière, etc.
Jai trouvé ce comportement assez ennuyeux, cependant, comme des commandes comme d
mettre le texte sur lequel ils opèrent dans la mémoire tampon par défaut, ce qui signifiait que je ne pouvais pas faire un rapide dd
et coller une ligne depuis Internet , par exemple.
Commentaires
- + est un enregistreur de presse-papiers
- Concernant votre dernier point,
dd
signifie » couper une ligne « , ce serait donc le comportement attendu. Dans les rares cas où vous le souhaitez pour supprimer réellement une ligne dans loubli,"_dd
fera laffaire. - également comme @HamishDowner le note dans sa réponse: Ce qui suit ne fonctionnera que si
vim --version
indique que vous avez+xterm_clipboard
fonctionnalité. Sinon, vous devrez installer des packages supplémentaires ou recompiler vim avec cette fonctionnalité ajoutée.
Réponse
Maintenez la touche Maj et sélectionnez le texte avec le curseur de la souris.
Le texte sera copié dans le presse-papiers.
Cela fonctionne également pour coller depuis le presse-papiers dans vim.
Pour être clair, cela fonctionne pour vim
fonctionnant dans un terminal tel que xterm
.
Commentaires
- @LoopSpace pour les sélections multilignes, cela copiera également les numéros de ligne lorsque
set nu
est activé . Donc, vous voudrez probablement basculer les numéros de ligne avec un raccourci ou exécuter la commande:set nonu
avant chaque sélection - Sur MAC, maintenez la touche Option et sélectionnez le texte avec le curseur de la souris
- Ne ‘ ne fonctionne pas pour moi en utilisant vim 8.0 + gnome-terminal
- Solution non compatible avec des termes à plusieurs volets comme tmux.
- Ceci ne copie pas dans le presse-papiers, ceci copie dans le primaire .Voir la distinction dans article du wiki Clipboard Arch .
Réponse
Je trouve les commandes standard "+gP
et "+y
très difficiles à utiliser. Je « ai donc remappé Ctrl-Y
pour le copier dans le presse-papiers et Ctrl-P
pour coller à partir du presse-papiers. Ajoutez ceci à .vimrc
nnoremap <C-y> "+y vnoremap <C-y> "+y nnoremap <C-p> "+gP vnoremap <C-p> "+gP
Réponse
Quand jai vérifié mon vim ne supportait pas le presse-papiers:
vim --version | grep clip -clipboard +insert_expand +path_extra +user_commands +emacs_tags -mouseshape +startuptime -xterm_clipboard
Jai installé vim-gnome 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 respectivement « + y et » + p.
Réponse
Peu importe, Jai trouvé la réponse – elle est écrite dans les menus de vim.
"+y
Très intuitif.
Commentaires
- Utilisez-vous
gvim
? - @ nozimica- ouais
- Cest ‘ est également disponible dans vim fonctionnant dans un xterm ou un émulateur de terminal similaire sous X (si vim est compilé avec la fonctionnalité
+xterm_clipboard
).
Réponse
Juste pour ajouter une réponse non spécifique à vim: vous pouvez utiliser Ctrl+Shift+C
pour copier dans le presse-papiers système dans Ubuntu (si la fonctionnalité est fournie par votre émulateur de terminal, gnome-terminal pour un le fournit). Ctrl+Shift+V
colle à une autre fenêtre de terminal, Ctrl+V
se colle à une application GUI.
De plus, si vous sélectionnez le texte dans le terminal, puis cliquez avec le bouton central, il sera collé à partir du presse-papiers X11.
Commentaires
- Pour une raison quelconque, il ne ‘ t fonctionne. Sélectionnez simplement avec le mode visuel, copiez avec ctrl-shift-C, puis collez dans une autre application en utilisant Ctrl-shift-V? Le texte ‘ nest pas copié pour moi.
- @ ripper234: cela ne fonctionne pas si vous utilisez gvim. Comme le dit crazy2be, cette fonctionnalité provient de votre émulateur de terminal.
- @ ripper234: 1) Cest une fonctionnalité fournie par votre émulateur de terminal (gnome-terminal pour lun le fournit), 2) Ctrl + Shift + V est pour coller dans le terminal , les applications GUI utilisent toujours Ctrl + V comme dhabitude. Je ‘ modifierai la réponse pour la rendre plus claire.
- si vous utilisez la souris à contrôle par décalage – sélectionnez du texte, copier-coller à partir dune fenêtre de tampons devient facile.
Réponse
Maintenez la touche SHIFT enfoncée et sélectionnez le texte avec la souris pour le copier.
Puis collez dans un autre programme avec CTRL + v
.
Fonctionne en terminal sur mon Ubuntu 16.04. Je ne suis pas sûr de gvim
et dautres systèmes.
Commentaires
- Cela ne fonctionne pas.
- réponse créative
Réponse
Par défaut, si vous installez la version allégée de vim, vous naurez pas le +xterm_clipboard
sur (vim --version | grep xterm
), qui est nécessaire pour utiliser *
et +
senregistre en dehors de vim.
Pour lactiver, vous devez soit compiler vim vous-même, soit installer une version de vim qui laccompagne est préenregistrée. Jai utilisé vim-gnome: sudo apt-get install vim-gnome
. Si vous effectuez vim --version | grep xterm
, vous verrez que cest maintenant +xterm_clipboard
.
Maintenant, essayez de copier vers le +
et *
et cela devrait fonctionner.
Réponse
Juste pour ajouter, si quelque chose fonctionne, essayez de changer le terminal qui encapsule vim (si vous utilisez vim depuis le terminal). Jai trouvé que, par exemple, le presse-papiers est inaccessible par guake alors quil est accessible depuis gnome-terminal.
Réponse
Pour Ubuntu 14.04 Et ci-dessus:
-
Sélectionnez simplement le texte que vous voulez copier. Cliquez ensuite sur le bouton central avec votre souris et accédez au presse-papiers
-
Et là aussi, faites la même chose (cliquez sur le bouton central avec votre souris).
Cela fonctionne à 100% dans les deux vim
et tail
sur Ubuntu.
shift'
puisshift=
puisy
(pas tout à la fois, un après lautre, sauf les décalages bien sûr).