Wie kann ich Text aus einem Remote-VIM kopieren und in ein lokales VIM einfügen?


12

Ich bearbeite eine Datei in vim auf einem Remotecomputer über ssh und möchte Text aus der Remotedatei kopieren und in eine vim-Instanz einfügen, die auf meinem lokalen Computer ausgeführt wird. Gibt es eine einfache Möglichkeit, dies zu tun? Ich kann die Auswahlfunktionen meines Terminalemulators verwenden, um Text auszuwählen, der gerade auf dem Bildschirm angezeigt wird. Wenn meine Auswahl jedoch größer ist, als auf den Bildschirm passt, habe ich kein Glück.


Überprüfen Sie, ob diese Antwort hilft.
Skippy le Grand Gourou

Antworten:


23

Öffnen Sie die Remote-Datei in der lokalen vim-Sitzung:

  :e scp://user@host/relative/path/from/home.txt

Ich mag. Schön und einfach.
Chev

Toller Tipp! Kann dies scp://anderswo erkannt werden oder ist es nur VIM?
Frozen Flame

1
@FrozenFlame: Ich glaube, es ist app-spezifisch. ABER ich wäre nicht überrascht, wenn ein großes DE wie KDE oder Gnome die Unterstützung für dieses Schema in jeder App vorschreiben würde.
nperson325681

1
Für absolute Pfade::e scp://user@host//tmp/file.txt
Simon A. Eugster

9

Wenn Sie über ausreichende Berechtigungen auf dem Remotecomputer verfügen, können Sie diese hinzufügen

AcceptEnv WINDOWID

zu / etc / ssh / sshd_config und starten Sie sshd mit neu

sudo /etc/init.d/ssh restart

Dann auf Ihrem lokalen Computer hinzufügen

ForwardX11 yes
SendEnv WINDOWID

in Ihre ~ / .ssh / config-Datei

Wenn Sie dann ein X-fähiges vim auf dem Remote-Computer ausführen (z. B. gvim -v), können Sie es kopieren und in die X-Zwischenablage einfügen. VWählen Sie den Text einfach visuell aus (z. B. mit ) und ziehen Sie ihn in das *Register.

Bearbeiten

Ich habe vergessen, den Teil über die Einstellung SendEnv WINDOWIDin Ihre ~ / .ssh / config aufzunehmen, also habe ich diesen hinzugefügt und die Aktivierung der X-Weiterleitung von der Befehlszeile ( -XOption ssh ) in die Datei ~ / .ssh / config ( ForwardX11 yes) verschoben .


Ich musste das xauth-Paket installieren, damit dies unter Debian funktioniert.
Leo

Damit kann ich lokal kopieren und aus der Ferne einfügen. Gibt es einen Weg, auch umgekehrt? Vielen Dank!
Paschalis
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.