Wie kopiere ich die Befehlsausgabe in vim?

33

Wenn ich zum Beispiel ' :pwd' eingebe, um das aktuelle Arbeitsverzeichnis zu erhalten, kann ich den Text in gvim auswählen, aber ich kann nicht herausfinden, wie ich ihn in die Zwischenablage kopieren soll. Wenn ich dasselbe in console vim versuche, kann ich es nicht einmal mit der Maus auswählen. Ich möchte, dass dies mit allen vim-Befehlen funktioniert, z. B. set guifontum die guifont=Consolas:h10:cANSIAusgabe zu kopieren .

Steven
quelle

Antworten:

41

Suchst du das,

:redir @* | set guifont | redir END

: Befehl umleiten leitet die Ausgabe eines Befehls in ein Register (@ *) um. Das Register @ * bezieht sich auf die Zwischenablage.

Für weitere Informationen hierzu,

:help :redir
asdfg
quelle
hat in vim-gtk kein ahnung gewirkt?
Sergio Abreu
@ SergioAbreu versuchen @+statt @*(na ja, es funktioniert in gvim).
Dienstag,
10

Versuchen Sie :r !pwd, das aktuelle Arbeitsverzeichnis direkt in die geöffnete GVIM-Datei zu laden.
Sie können es dann in die Zwischenablage kopieren, wie Sie es von allen anderen dort geöffneten Textdateien gewohnt sind.

nik
quelle
Das ist nützlich, aber kann ich das set guifontzum Beispiel mit verwenden?
Steven
Nein, das ist kein Shell-Befehl, daher funktioniert es nicht.
Kevin Panko
4

Für dieses spezielle Beispiel könnten Sie folgendes tun (beachten Sie das "!", Das bewirkt, dass es durch die Shell geht):

:!pwd | xclip

oder

:!pwd | xclip -selection secondary

(abhängig von der gewünschten X-Auswahl).

Möglicherweise müssen Sie zuerst xclip installieren

sudo apt-get install xclip

(oder gleichwertig)

nisc
quelle
3

Wenn Sie vim in einem xterm ausführen und die Umschalttaste gedrückt halten, während Sie den Text auswählen, wird der Text in das X-Äquivalent der Zwischenablage kopiert.

garyjohn
quelle
X hat zwei Zwischenablagen (mindestens); Ihr Vorschlag platziert den Text in der PRIMARY-Auswahl (Einfügen mit Mittelklick) und nicht in der CLIPBOARD-Auswahl (Einfügen mit Strg + V in den meisten Apps).
Marius Gedminas