it-swarm.com.de

Wie kopiere ich den gesamten Text aus dem VIM-Editor mit der VIM-Befehlszeile?

Ich möchte den gesamten Text aus dem VIM-Editor auswählen. Ich habe den Befehl :%y+ ausprobiert, erhalte jedoch den Fehler E850: Invalid register name. Ich erhalte diesen Befehl von diesem Link . Bitte helfen Sie mir, den gesamten Text aus einer in vim geöffneten Datei zu kopieren. Sie benutzen Ruck, was bedeutet das?.

13
geeks

Ich hatte ein ähnliches Problem. Ich weiß nicht, warum Sie so viele Stimmen bekommen haben. Das Problem ist, dass Sie vim-gnome nicht installiert haben, was etwa 24 MB erfordert und dem eingebauten vim eine Funktion hinzufügt.

Sudo apt-get install vim-gnome

dann wird Ihr Befehl funktionieren. %yy+ Dieser Befehl kopiert den gesamten Text in die Zwischenablage des Systems.

14

TLDR: Wenn Sie Text in Vim in die System-Zwischenablage kopieren möchten, geben Sie Folgendes ein ggVG"*y. Erklärung unten ...

Vim wird im Terminal ausgeführt. Abhängig davon, wie Sie es verwenden und welche Art von Vim Sie ausführen, können Sie Text nicht wirklich mit der Maus auswählen und auf herkömmliche Weise kopieren und einfügen.

Wenn Sie den gesamten Text mit Vim auswählen möchten, verwenden Sie ggVGy (Beachten Sie die Großbuchstaben VG mitten drin). Dieser Befehl bewegt den Cursor an den oberen Rand der Datei, wechselt in den visuellen Modus, an den unteren Rand der Datei (wodurch der gesamte Text ausgewählt wird) und zieht ihn dann an (kopiert ihn). Sie können dann verwenden p Um diesen Code einzufügen , aber nur innerhalb von Vim .

Wenn Sie in die Zwischenablage kopieren möchten, um sie außerhalb von Vim zu verwenden dann versuchen Sie Folgendes:

Wählen Sie zunächst alles mit den oben beschriebenen Befehlen aus , jedoch ohne das endgültige y: (ggVG). Dann drücken "*y. Dieses sollte jetzt in die Zwischenablage Ihres Betriebssystems kopiert werden und Sie können es einfach einfügen (Ctrl/Cmd+v) irgendwo außerhalb von Vim. Dies kann variieren, je nachdem, welche Einstellungen Sie für Vim vorgenommen haben, sollte aber funktionieren.


Eine kurze Erläuterung der verwendeten Befehle. gg geht an den Anfang der Datei. V Ruft den visuellen Modus über Linien auf. G geht zum Ende der Datei. y ruckelt (kopiert) den Text, aber nicht in die Zwischenablage. p fügt den Text ein.

Das fortgeschrittenere (d. H. Coole) Zeug:

" Ermöglicht den Zugriff auf Register. Zum Beispiel "a Ermöglicht den Zugriff auf die Registrierung a.

Der * ist die Systemzwischenablage, sodass "* Zugriff auf die Systemtastatur bietet. Daher wird "*y in die Zwischenablage des Systems verschoben.

5
Gordonium

Um die gesamte Datei auszuwählen, können Sie an den Anfang springen, den visuellen Modus starten und an das Ende springen:

ggVG

1
December

Es gibt zwar eine großartige Erklärung, wie die System-Zwischenablage ausnutzen in vim, es klingt jedoch so, als hätten Sie nur Schwierigkeiten, Ihren vim dazu zu bewegen, überhaupt auf die Zwischenablage zuzugreifen. Installieren Sie vim-gnome. Sie erhalten die Pakete, die Sie benötigen, um in die Systemzwischenablage zu gelangen.

Aus irgendeinem Grund funktionierte "* für mich nicht, aber der gleiche Befehl mit dem" + -Register "tat es.

1
jazzyfresh

Diese Frage ist jetzt ein paar Jahre alt, aber ich hatte das gleiche Problem unter Linux Mint 18. Ich fand, dass xclip für mich funktioniert hat. Sie können den Befehl vmap <F7> :!xclip -sel c<CR><CR> in Ihrer .vimrc zuordnen, um Ihre aktuelle Auswahl im visuellen Modus in die Zwischenablage des Systems zu kopieren. 

Hier ist ein Thread, der die obigen (und anderen) Lösungen enthält.

0
Sparrow1029