1105 Stimmen

Wie kopiert man in die Zwischenablage in Vim?

Ist es möglich, direkt aus Vim in die Zwischenablage zu kopieren? yy kopiert nur Sachen in den internen Puffer von Vim. Ich möchte in die Zwischenablage des Betriebssystems kopieren. Gibt es einen solchen Befehl in Vim oder kann man nur Sachen innerhalb von Vim kopieren?

212 Stimmen

Bitte beachten Sie die unterbewertete Antwort, die eine wichtige Tatsache klarstellt: Sie müssen vim mit der Funktion +Zwischenablage kompiliert haben, damit JEDER der folgenden Vorschläge überhaupt funktioniert! Dies ist bei den meisten Systemen NICHT die Standardeinstellung.

11 Stimmen

@NeilTraft, einige Antworten schlagen Piping von Vim zu externen Programmen vor, daher ist die Behauptung, dass JEDE Antwort das Flag +Clipboard erfordert, falsch. Ich weise nur darauf hin, um zukünftige Leser vor Verwirrung zu bewahren.

4 Stimmen

Mögliches Duplikat von Wie kann man Vim dazu bringen, aus der Zwischenablage des Systems einzufügen (und dorthin zu kopieren)? (Anmerkung: die andere Frage ist neuer, hat aber IMHO bessere Antworten, weshalb ich diese Frage als Duplikat markiert habe)

686voto

Gabe Moothart Punkte 30087

En * Register wird dies tun. Unter Windows, + y * sind gleichwertig. Unter Unix gibt es einen feinen Unterschied zwischen + y * :

Unter Windows sind die Register * und + gleichwertig. Für X11-Systeme, unterscheiden sie sich jedoch. Für X11-Systeme, ist * die Auswahl, und + ist der Ausschneidepuffer (wie die Zwischenablage). http://vim.wikia.com/wiki/Accessing_the_system_clipboard

* ist wahrscheinlich das, was Sie die meiste Zeit wollen, daher verwende ich * weil es in beiden Umgebungen so funktioniert, wie ich es erwarte.

In Linux-Distributionen müssen Sie Folgendes installieren vim-gtk (alias gvim ), um die Funktionalität der Zwischenablage zu erhalten. Das liegt daran, dass nicht-gtk vim normalerweise ohne X11-Unterstützung kompiliert wird. Dies ist, um es auf Konsole nur Maschinen (oft Server) laufen zu lassen.

Und für diejenigen, die sich nicht sicher sind, wie sie die Register beim Yanking oder Putting verwenden sollen, schreiben Sie einfach " dann den Namen des Registers. Um also etwas in das Zwischenablage-Register zu kopieren, geben Sie ein "*y und geben Sie dann ein "*p (Kredit: Kyle Mathews)

479voto

Brian Punkte 27876

Auf dem Mac OSX

  • Ausgewählten Teil kopieren: Text visuell markieren (Typ v ou V im Normalfall Modus) und geben Sie :w !pbcopy

  • Kopieren der gesamten Datei :%w !pbcopy

  • Einfügen aus der Zwischenablage :r !pbpaste

Auf Die meisten Linux Distros, können Sie ersetzen:

  • pbcopy oben mit xclip -i -sel c ou xsel -i -b
  • pbpaste mit xclip -o -sel -c ou xsel -o -b
    -- Nota: Für den Fall, dass keines dieser Werkzeuge ( xsel y xclip ) sind auf Ihrer Distribution vorinstalliert, Sie finden sie wahrscheinlich in den Repos

262voto

Gary Willoughby Punkte 48229

In Ihrer vimrc-Datei können Sie festlegen, dass automatisch die Zwischenablage des Systems zum Kopieren und Einfügen verwendet wird.

Auf macOS und Windows eingestellt:

set clipboard=unnamed

Auf Linux-Set (vim 7.3.74+):

set clipboard=unnamedplus

HINWEIS: Möglicherweise müssen Sie eine aktuelle Version von Vim verwenden, damit diese funktionieren.

http://vim.wikia.com/wiki/Accessing_the_system_clipboard

183voto

Amardeep AC9MF Punkte 17715

Verwenden Sie das Register "+ zum Kopieren in die Zwischenablage des Systems (d.h. "+y anstelle von y ).

Ebenso können Sie von "+ um Text aus der Zwischenablage des Systems zu holen (d.h. "+p anstelle von p ).

96voto

gkb0986 Punkte 2749

@Jacob Dalton hat dies in einem Kommentar erwähnt, aber niemand scheint in einer Antwort erwähnt zu haben, dass vim mit Unterstützung für die Zwischenablage kompiliert sein muss, damit einer der hier erwähnten Vorschläge funktioniert. Meiner war unter Mac OS X standardmäßig nicht so konfiguriert und ich musste vim neu kompilieren. Benutzen Sie diesen Befehl, um herauszufinden, ob Sie es haben oder nicht vim --version | grep 'clipboard' . +clipboard bedeutet, dass Sie gut sind und die Vorschläge hier für Sie funktionieren werden, während -clipboard bedeutet, dass Sie vim neu kompilieren und neu erstellen müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X