如果我使用第一个 vim 复制一行(使用yy
),如何粘贴到另一个终端的 vim(使用p
)?有什么命令或设置可以做到吗?我可以复制并粘贴到全局系统剪贴板中吗?
我知道以下方法是可行的,但我想要一种更简单的方法:
我不想退出第一个 vim 并重新打开第二个 vim。
我不想使用单独的窗口(带有
:sp
)。
答案1
首先,您必须安装支持剪贴板的 vim 版本。为了适应非图形环境的用户(例如 Ubuntu Server 用户),vim
不要vim-tiny
使用此功能。您需要安装维姆 ,可以通过图形方式或终端启动。GVim 将替换该vim
命令。
您可以从第一个 vim 将文本拖入“剪切缓冲区”,然后将文本粘贴到第二个 vim 中。要复制到全局剪切缓冲区,请使用寄存器+
。"
键允许您指定在执行拖入或粘贴操作时要使用的寄存器。
在第一个 vim 中,将一行拖入寄存器+
:
"+yy
+
然后,从第二个 vim 中的寄存器粘贴:
"+p
有关可用寄存器的更多信息,请查看:help registers
。您还可以使用"+p
粘贴从系统上的任何其他来源复制的文本。
答案2
对我而言最有效(不需要我改变我的按键绑定习惯)的解决方案是:https://stackoverflow.com/questions/9166328/how-to-copy-selected-lines-to-clipboard-in-vim
只需输入:
set clipboard=unnamedplus
在你的.vimrc
。
答案3
我喜欢Bill的解决方案,并且创建了一个映射:
vmap <leader>y :w! /tmp/vitmp<CR>
nmap <leader>p :r! cat /tmp/vitmp<CR>
第一个在可视模式下复制 /tmp/vitmp 中的所有内容,第二个复制文件中 /tmp/vitmp 中的内容
答案4
它实际上非常简单:安装一个vim
支持剪贴板的版本。如果vim
没有,请获取以下任一个:
sudo apt-get install vim-athena
sudo apt-get install vim-gnome
sudo apt-get install vim-gtk
安装后,只需运行vim
。您还可以通过运行以下命令来验证剪贴板是否已启用:
vim --version|grep clipboard
你应该明白+xterm_clipboard
。