Vim Copy-Paste über Terminals

19

Das übliche vim yankund pastefunktioniert nur im selben Fenster (funktioniert aber dateiübergreifend und schließt / speichert Befehle). Ist es möglich, dass es über mehrere Terminals hinweg funktioniert (von Fenster zu Fenster ziehen und in ein anderes Terminal einfügen) und wenn ja, wie?


quelle

Antworten:

30

Wahrscheinlich ist die einfachste Sache für Sie versuchen, setzen set clipboard=unnamedin Ihren .vimrcund Ihre vim Sitzungen neu starten.

Auf diese Weise können Sie yank(z. B. yy) in einem Fenster ausführen und put(z. B. p) in einem anderen Fenster, da alle vim-Sitzungen denselben X-Auswahlpuffer verwenden.

Auf der anderen Seite wird Ihr Yank-Puffer überschrieben, sobald Sie Text in einem anderen Fenster einer Anwendung auswählen.

Auf der Oberseite bedeutet dies auch, dass alles, was Sie in Vim reißen, jetzt durch Klicken mit der mittleren Maustaste in eine beliebige Anwendung eingefügt werden kann.

Wenn Ihnen das nicht gefällt, können Sie "+oder "*vor Ihrem Rucken eingeben und Befehle eingeben, z. B. "+yyum eine Zeile zu rucken.

Die +Formulare interagieren mit der Zwischenablage ( "+yist wie Ctrl+ C, "+pist wie Ctrl+ V).
Die *Formulare interagieren mit dem Auswahlpuffer (entspricht dem "*yKlicken und Ziehen mit der linken Maustaste, entspricht dem Klicken mit der "*pmittleren Maustaste).

Siehe Erstellen GUI Auswahl , X11 Unterstützung bei der Auswahl und die Zwischenablage und Maus Optionen für weitere Einzelheiten.

Mikel
quelle
3
Gott, ich liebe den mittleren Klick. :)
Dan M.
set clipboard=unnamedfunktioniert bei mir nicht (ich habe es in .vimrc abgelegt und alle vim-sitzungen neu gestartet). Leider noch die anderen Methoden. Es sieht so aus, als ob mein vim nicht mit x-support kompiliert ist. Ich verwende VNC, um von einem Windows-Computer aus eine Verbindung zu einem Linux-Computer herzustellen.
3
Ja, diese Methode erfordert X11-Unterstützung. Ausführen :echo has('x11'), wenn die X-Unterstützung aktiviert ist, wird gedruckt 1.
Mikel
0

Wenn Sie eine gesamte Datei in Ihre Zieldatei kopieren möchten.

Öffnen Sie Ihre Zieldatei in vim.

Platzieren Sie den Cursor an der gewünschten Stelle und geben Sie Folgendes ein:

:r /path_to_file/file.ext

Dies kopiert eine ganze Datei dorthin, wo sich Ihr Cursor befindet ...

no1uknow
quelle