Jak mogę skopiować i wkleić tekst ze zdalnego vima do lokalnego vima?

11

Edytuję plik w vimie na zdalnej maszynie za pośrednictwem ssh i chcę skopiować tekst ze zdalnego pliku i wkleić go do instancji vim działającej na moim komputerze lokalnym. Czy jest na to łatwy sposób? Mogę użyć funkcji wyboru emulatora terminala, aby zaznaczyć tekst, który jest aktualnie na ekranie, ale jeśli mój wybór jest większy niż mieści się na ekranie, nie mam szczęścia.

davidscolgan
źródło
Sprawdź, czy ta odpowiedź pomaga.
Skippy le Grand Gourou

Odpowiedzi:

23

Otwórz plik zdalny w lokalnej sesji vim:

  :e scp://user@host/relative/path/from/home.txt
souser12345
źródło
Lubię. Ładne i proste.
Chev
Świetna wskazówka! Czy można to scp://rozpoznać gdzie indziej, czy jest to tylko VIM?
Frozen Flame,
1
@FrozenFlame: Uważam, że jest to specyficzne dla aplikacji. ALE nie zdziwiłbym się, gdyby duże DE, takie jak KDE lub Gnome, wymagało obsługi tego schematu w każdej aplikacji.
souser12345
1
W przypadku ścieżek bezwzględnych::e scp://user@host//tmp/file.txt
Simon A. Eugster
9

Jeśli masz wystarczające uprawnienia na zdalnym komputerze, możesz dodać

AcceptEnv WINDOWID

do / etc / ssh / sshd_config i zrestartuj sshd za pomocą

sudo /etc/init.d/ssh restart

Następnie dodaj na komputerze lokalnym

ForwardX11 yes
SendEnv WINDOWID

do pliku ~ / .ssh / config

Następnie, uruchamiając vima obsługującego X na zdalnym komputerze (np. gvim -v), Możesz skopiować i wkleić do i ze schowka X. Wystarczy wizualnie zaznaczyć tekst (np. Za pomocą V) i wcisnąć go do *rejestru.

Edytować

Zapomniałem dołączyć część o ustawieniach SendEnv WINDOWIDdo ~ / .ssh / config, więc dodałem to i przeniosłem włączanie przekazywania X z linii poleceń ( -Xopcja ssh ) do pliku ~ / .ssh / config ( ForwardX11 yes).

garyjohn
źródło
Musiałem zainstalować pakiet xauth, aby działał na Debianie.
leo
dzięki temu mogę kopiować lokalnie i wklejać zdalnie. Czy istnieje sposób, aby zrobić to również na odwrót? dzięki!
Paschalis