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?
Antworten
Zu viele Anzeigen?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)
Auf dem Mac OSX
-
Ausgewählten Teil kopieren: Text visuell markieren (Typ
v
ouV
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 mitxclip -i -sel c
ouxsel -i -b
pbpaste
mitxclip -o -sel -c
ouxsel -o -b
-- Nota: Für den Fall, dass keines dieser Werkzeuge (xsel
yxclip
) sind auf Ihrer Distribution vorinstalliert, Sie finden sie wahrscheinlich in den Repos
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.
@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.
- See previous answers
- Weitere Antworten anzeigen
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)
5 Stimmen
Stellen Sie sicher, dass Sie Folgendes getan haben
sudo apt-get install vim-gnome
bevor Sie die nachstehenden Befehle ausführen oder Sie erhalten den Fehler "Ungültiges Register"!9 Stimmen
@Harnirvair Für viele Gruppen von Lesern hier,
vim-gnome
ist wahrscheinlich überflüssig oder in ihrem Betriebssystem/Distro einfach nicht verfügbar, während ich vermutevim-gtk
und vorzugsweisevim-gtk3
sind wahrscheinlicher zu existieren und ziehen weniger Abhängigkeiten, während immer noch die Integration der Zwischenablage (zumindest für diejenigen, die noch auf X11; Ich bin nicht sicher, wie das alles mit Wayland interagiert).1 Stimmen
Siehe auch vi.stackexchange.com/questions/84/
0 Stimmen
Kasse stackoverflow.com/a/65666057/9384511
0 Stimmen
Ich benutze
cat file.filetype | clip
auf git bash in Windows, da ich die ganze Datei als Aufgabe in der Schule kopieren muss. für Abschnitte einer Datei habe ich hinzugefügtset clipboard=unnamed
in meiner _vimrc.0 Stimmen
Unter Ubuntu sollte man darauf achten, vim-gui-common zu installieren, auch wenn man nur die nicht-gui Version von vim benutzt, da dies auch die Zwischenablage-fähige nicht-gui Version von vim zu installieren scheint
0 Stimmen
Neben vim-gnome,
"+y
wird auch standardmäßig in neovim auf Ubuntu 20.04 unterstützt