Comment copier la sortie d'une commande dans vim?


33

Par exemple, si je tape ' :pwd' pour obtenir le répertoire de travail actuel, je peux sélectionner le texte dans gvim mais je n'arrive pas à comprendre comment le copier dans le presse-papiers. Si j'essaye la même chose dans la console vim, je ne peux même pas le sélectionner avec la souris. Je voudrais que cela fonctionne avec toutes les commandes vim, comme set guifontpour copier la guifont=Consolas:h10:cANSIsortie.

Réponses:


41

Vous cherchez cela,

:redir @* | set guifont | redir END

: la commande redir redirige la sortie d'une commande vers un registre (@ *). Le registre @ * fait référence au presse-papiers.

Pour plus d'informations à ce sujet,

:help :redir

n'a pas fonctionné dans vim-gtk un indice?
Sergio Abreu

@SergioAbreu essayez à la @+place de @*(enfin, cela fonctionne dans gvim).
leeand00

10

Essayez ' :r !pwd' pour obtenir le répertoire de travail actuel directement dans le fichier ouvert GVIM.
Vous pouvez ensuite le copier dans le presse-papiers comme vous le feriez pour tout autre contenu de fichier texte ouvert.


C'est utile, mais puis-je l'utiliser avec set guifontpar exemple?
Steven

Non, ce n'est pas une commande shell donc ça ne marchera pas.
Kevin Panko

4

Pour cet exemple particulier, vous pouvez le faire (notez le "!" Qui le fait passer par le shell):

:!pwd | xclip

ou

:!pwd | xclip -selection secondary

(selon la sélection X que vous souhaitez).

Vous devrez peut-être d'abord installer xclip

sudo apt-get install xclip

(ou équivalent)


3

Si vous exécutez vim dans un xterm, maintenir la touche Maj enfoncée tout en sélectionnant le texte copiera le texte dans l'équivalent X du presse-papiers.


X a deux presse-papiers (au moins); votre suggestion placera le texte dans la sélection PRIMAIRE (coller avec un clic du milieu) plutôt que dans la sélection h CLIPBOARD (coller avec Ctrl + V dans la plupart des applications).
Marius Gedminas
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.