vim: ssh运行远程vim,如何copy远程内容到本地粘贴板

1,971 views
Skip to first unread message

ping song

unread,
Jun 6, 2014, 12:00:07 AM6/6/14
to vim...@googlegroups.com
一个困扰了“多年”的问题。。。
我习惯在windows下运行cygwin terminal, ssh登陆linux运行vim,然后在这里面做很多工作。
但经常需要把一部分文字copy到本地windows粘贴板中,比如放入outlook邮件中。
一直没找到好办法。
1)如果文本内容在一个屏幕范围内,可以用terminal软件自身的copy功能。
2)文本内容超出几个屏幕,我目前使用dropbox这类工具,同步远程机器的文件改动到本地,然后notepad打开,copy。。。

有没有其他好的办法,直接可以用vim方式选择文本,copy到register,但同时能到本地windows粘贴板中使用?

谢谢。

Jade.Shan

unread,
Jun 7, 2014, 11:57:54 AM6/7/14
to vim...@googlegroups.com
我也只会用笨办法:保存一个文件,然后scp复制过来。
--
CAFE BABE

依云

unread,
Jun 8, 2014, 9:20:14 AM6/8/14
to vim...@googlegroups.com
On Thu, Jun 05, 2014 at 11:59:58PM -0400, ping song wrote:
远程的 Vim 支持剪贴板的话,本地开一个 X Server(比如 Xming 或者 Cygwin 那个)。

--
Best regards,
lilydjwg

ping song

unread,
Oct 19, 2014, 12:40:31 PM10/19/14
to vim...@googlegroups.com
偶然看到这个方法,惊喜以为有解了.
可是试过总是不行:


其实原理很简单:

(vim中)拷贝一段文本,或者一个文件

通过ssh发送到远端机器的xclip(或者所有类似操作剪贴板的程序).

如果这个可行,我希望实现:

1. 本地主机A登录远程server B
2. 运行vim
3. 需要时候isual模式选取文本
4. yank到B的本地register, 同时用一小段vim代码实现:
    把yank的文本通过ssh发送到本地A的clip程序上,从而实现远程copy的本地剪贴板同步.

可是我测试了不行. 我一个最简单的例子也没有通过:

A: 
发送文件内容到B的剪贴板
cat abc.txt | ssh B xclip

B:
xclip -o 查看

可能是个stupid问题,各位高手帮忙看下?

如果这个实现了,倒是解决了大问题 --- 以后不用易赖终端的复制粘贴功能,直接在远程vim中实现把选取的文本拷贝到本地. 很cool阿.




--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛

---
您收到此邮件是因为您订阅了 Google 网上论坛的“Vim.cn”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到vim-cn+un...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/d/optout

bigzhu

unread,
Oct 19, 2014, 5:17:51 PM10/19/14
to vim...@googlegroups.com

我唯一成功的就是用tmux的来复制

您收到此邮件是因为您订阅了Google网上论坛中的“Vim.cn”论坛。

ping song

unread,
Oct 19, 2014, 8:07:01 PM10/19/14
to vim...@googlegroups.com
cygwin下(本地。 远程是linux)继续测试的结果是:cygwin 本地剪贴板居然是ssh登陆用户专用的。

比如在远程机器的以下代码:

linux>cat test-ls.md | ssh us...@172.29.32.101 "cat > temp.txt; cat temp.txt >> /dev/clipboard 

然后在本机我检查剪贴板:
$ cat /dev/clipboard

出来的却并不是temp.txt的内容。而是之前在本地cygwin终端做的复制的内容。

也就是说,两个cygwin终端:
一个是我在windows中打开的cygwin终端A
一个是我从linux ssh登陆进本地cygwin ssh server的终端B

B中复制到剪贴板上的内容在A上无法获取。。。

不知道我说明白了没有。。


ping song

unread,
Oct 24, 2014, 6:12:17 PM10/24/14
to vim...@googlegroups.com
目前最佳方案就是dropbox。
远程写入一固定名称文件。本地刷同一文件。
(可能可以写个后台脚本每秒重复定向此文件到剪贴板)
别无他法。。

Steffan Chen

unread,
Nov 5, 2014, 11:32:02 PM11/5/14
to vim...@googlegroups.com
v模式, "+y

在 2014年6月6日星期五UTC+8下午12时00分07秒,ping写道:

Ping

unread,
Nov 6, 2014, 7:25:48 AM11/6/14
to vim...@googlegroups.com
那是copy到远程机器自身系统粘贴板。我要的是传递到本地机器粘贴板。

from iPhone

--

Jason Register

unread,
Sep 4, 2015, 7:24:30 AM9/4/15
to Vim.cn
有条件就搭建Samba服务吧。原理上远程Copy可以实现,但是估计会比较麻烦啊。

在 2014年6月6日星期五 UTC+8下午12:00:07,ping写道:

ping

unread,
Sep 6, 2015, 1:40:26 PM9/6/15
to Vim.cn
我已经暂时放弃了。目前最佳方法是用tmux的copy功能:save-buffer
Reply all
Reply to author
Forward
0 new messages