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 .

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

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.


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)


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.