vim:我可以从vim复制文本并仅使用键盘将其粘贴到shell提示符吗?

vim:我可以从vim复制文本并仅使用键盘将其粘贴到shell提示符吗?,vim,terminal,copy-paste,Vim,Terminal,Copy Paste,我在Ubuntu 12.04终端上使用vim 7.3 在vim中编辑文件时,我可以在视觉模式下选择一些文本,然后使用+y将其拖动到系统剪贴板中。然后我可以使用shift-ctrl-v将文本粘贴到另一个Ubuntu终端 然而,如果我只能访问一个Ubuntu终端,我必须暂时离开vim,使用:shell转到Ubuntu命令提示符。之后,我发现被拖动的文本不再存在于系统剪贴板中,我无法将其粘贴到命令提示符中 在使用:shell仅使用键盘后,是否有任何方法可以在系统剪贴板中保留拖动的文本?感谢您的建议。以

我在Ubuntu 12.04终端上使用vim 7.3

在vim中编辑文件时,我可以在视觉模式下选择一些文本,然后使用+y将其拖动到系统剪贴板中。然后我可以使用shift-ctrl-v将文本粘贴到另一个Ubuntu终端


然而,如果我只能访问一个Ubuntu终端,我必须暂时离开vim,使用:shell转到Ubuntu命令提示符。之后,我发现被拖动的文本不再存在于系统剪贴板中,我无法将其粘贴到命令提示符中


在使用:shell仅使用键盘后,是否有任何方法可以在系统剪贴板中保留拖动的文本?感谢您的建议。

以下内容适用于我在Fedora和vim7.3中使用gnome终端的情况

选择所需的文本,例如使用视觉模式。 按Ctrl-Shift-c 然后输入ESC,后跟:shell 进入外壳后,按Ctrl-Shift-v 如果在复制时也获取换行符,则在粘贴时它将作为shell命令执行


这样做的一个副作用是:shell如果您有vim配置来保存.swp文件,那么当前目录中将保留一个文件,下次编辑原始文件时,您将需要处理vim抱怨找到交换文件的问题。

对于远程ssh会话,可以使用类似的解决方法

使用tmux,您可以在同一个连接上打开更多窗格或拆分,您可以在窗格拆分中使用vim,在另一个连接中使用shell

使用tmux,您可以将文本从拆分的窗格复制到另一个窗格。 使用标准快捷键Ctrl+b,工作流程如下

在vim窗格中,输入tmux的复制模式Ctrl+b[ 使用Ctrl+空格键高亮显示要复制的文本 选择完成后,使用Alt+w将文本复制到tmux剪贴板 在tmux中切换到控制台窗格(带有两个窗格)类似于Ctrl+b1 使用Ctrl+b]在shell提示中粘贴文本 您可以通过浏览手册或使用Ctrl+b来查看所有?而在tmux内部


有一些插件,比如,可以让你在vim中与tmux会话交互,比如发送部分文本。

如果我只能访问一个Ubuntu终端,请解释一下你是如何做到的happen@jthill我正在运行一个SSH终端会话,不想打开多个会话。这就是我的想法。您需要这样做,以便ssh连接另一端的vim知道有一个X服务器可以与之通信。我自己从来没有设置过sshd来做这件事,这个链接看起来是最有可能的。只需使用终端的复制功能,即使用鼠标,vim copy对你的情况没有多大帮助。在Ubuntu中不起作用。只有通过终端选择文本,而不是通过vim的视觉模式选择文本时才有效。但是我不知道如何只使用键盘通过终端选择文本。你可能会搜索GNU屏幕,我听说它只能使用键盘选择文本,但我个人没有使用它的经验。好建议。我刚刚安装了tmux。它有效地解决了我的问题。谢谢