Как я могу скопировать и вставить текст из удаленного vim в локальный vim?

12

Я редактирую файл в vim на удаленной машине через ssh и хочу скопировать текст из удаленного файла и вставить его в экземпляр vim, работающий на моей локальной машине. Есть простой способ сделать это? Я могу использовать функции выбора эмулятора терминала для выбора текста, который в данный момент находится на экране, но если мой выбор больше, чем может поместиться на экране, мне не повезло.

davidscolgan
источник
Проверьте, поможет ли этот ответ .
Skippy le Grand Gourou

Ответы:

23

Откройте удаленный файл в локальной сессии vim:

  :e scp://user@host/relative/path/from/home.txt
nperson325681
источник
Мне нравиться. Красиво и просто.
Chev
Отличный совет! Это scp://можно узнать в другом месте или это только VIM?
Замороженное пламя
1
@FrozenFlame: я верю, что это приложение. НО я бы не удивился, если бы большое DE, такое как KDE или Gnome, обязывало поддержку этой схемы в каждом приложении.
nperson325681
1
Для абсолютных путей::e scp://user@host//tmp/file.txt
Саймон А.
9

Если у вас достаточно прав на удаленном компьютере, вы можете добавить

AcceptEnv WINDOWID

в / etc / ssh / sshd_config и перезапустите sshd с помощью

sudo /etc/init.d/ssh restart

Затем на вашем локальном компьютере добавить

ForwardX11 yes
SendEnv WINDOWID

в ваш файл ~ / .ssh / config

Затем, запустив vim-based vim на удаленном компьютере (например, gvim -v), вы можете скопировать и вставить в буфер обмена X и из него. Просто визуально выделите текст (например, используя V) и вставьте его в *реестр.

редактировать

Я забыл включить часть о настройке SendEnv WINDOWIDв ~ / .ssh / config, поэтому я добавил ее и перенес включение перенаправления X из командной строки ( -Xопция ssh ) в файл ~ / .ssh / config ( ForwardX11 yes).

garyjohn
источник
Мне нужно было установить пакет xauth, чтобы он работал на Debian.
Лев
с этим я могу скопировать локально, и вставить удаленно. Есть ли способ сделать и наоборот? Спасибо!
Paschalis