102 votes

Comment copier les lignes sélectionnées dans le presse-papiers dans vim ?

Comment copier les lignes sélectionnées dans le presse-papiers dans vim. Je sais comment le faire pour tous les fichiers texte mais je veux le faire pour les lignes sélectionnées. Merci !

0 votes

0 votes

0 votes

Note à tous ceux qui rencontrent ce problème : Aucune de ces réponses ne fonctionne si vous n'avez pas le support du presse-papiers avec vim, vérifiez avec vim --version | grep clip Dans ce cas, la seule option est de désinstaller vim, d'installer gvim et d'utiliser vim comme vous le feriez normalement. vim

118voto

Spencer Rathbun Points 6171

SHIFTV vous met en mode de sélection de lignes. Puis "y place les lignes actuellement sélectionnées dans le `qui est le presse-papiers. Il existe [un certain nombre](http://vimdoc.sourceforge.net/htmldoc/change.html#registers) différents registres, à des fins différentes. Voir la section surselection and drop registerspour plus de détails sur les différences entre*y+` registres sur Windows et Linux.

13 votes

Sous Linux, + correspond au presse-papiers global, * au presse-papiers de sélection, tandis que sous Windows, les deux correspondent au presse-papiers global.

76voto

Suan Points 3768

Si vous êtes sous Linux et que vous utilisez un VIm version 7.3.74 ou supérieure (la version installée à partir d'Ubuntu 11.10 répond à cette exigence), vous pouvez procéder comme suit

set clipboard=unnamedplus

qui placera le texte arraché dans le presse-papiers global, et vous permettra de coller à partir du presse-papiers global, sans avoir à utiliser de registres spéciaux. Contrairement à la solution de ldigas, ceci fonctionnera également sur les versions non-gui de VIm.

8 votes

Cela ne fonctionne que si j'installe le vim-gnome au lieu de vim .

5 votes

@dan-klasson : cette option nécessite un vim qui a été compilé avec le support du presse-papiers. Vous pouvez vérifier si c'est le cas en tapant vim --version | grep "+xterm_clipboard" .

0 votes

Cela semble fonctionner pour copier dans des programmes autres que vim, mais lorsque je passe en mode insertion dans vim et que j'utilise "shift + insert" pour coller à partir du presse-papiers, seules les deux premières lignes sont collées... J'ai installé vim-gnome ; est-ce que j'ai manqué quelque chose d'autre ?

13voto

ldigas Points 19740
set guioptions+=a

... euh, en bref, chaque fois que vous sélectionnez/tirez quelque chose, mettez-le également dans le presse-papiers (pas celui de Vim, mais le clavier global du système de fenêtre). De cette façon, vous n'avez pas à penser à mettre des choses dans un registre spécial.

2 votes

// , A quels systèmes d'exploitation et/ou versions de Vim ce conseil s'applique-t-il ?

5voto

user3512967 Points 1

Installez "xclip" si vous ne l'avez pas fait...

sudo apt-get install xclip

Xclip place les données dans le presse-papiers "sélection/surligné" que vous cliquez au milieu pour coller, contrairement à "ctrl+v".

Dans vim, utilisez les commandes ex :

7w !xclip

ou

1,7w !xclip

ou

%w !xclip

Il suffit ensuite de faire un clic moyen pour coller dans n'importe quelle autre application...

4voto

dvk317960 Points 123

Si vim est compilé avec le support du presse-papiers, alors vous pouvez utiliser "*y signification : tirer le texte sélectionné visuellement dans le registre * ('*' est pour le presse-papiers)

S'il n'y a pas de support pour le presse-papiers, je pense que le seul autre moyen est d'utiliser Ctrl+Insert après avoir sélectionné visuellement le texte dans vim.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X