如果我使用第一个 vim 复制一行(with yy),我如何粘贴到另一个终端的 vim(with p)?有什么命令或设置可以做到吗?我可以复制并粘贴到全局系统剪贴板中吗?
我知道以下方法是可能的,但我想要一个更简单的方法:
我不想退出第一个 vim 并重新打开第二个 vim。
我不想使用单独的窗口(带有:sp)。
Jer*_*err 52
首先,您必须安装支持剪贴板的 vim 版本。为了适应具有非图形环境的用户(例如 Ubuntu Server 用户),vim并且vim-tiny不要使用此功能。你会想要安装GVim ,以图形方式或在您的终端中启动。GVim 将替换该
vim命令。
您可以将文本从第一个 vim 拉入“剪切缓冲区”,然后将文本粘贴到第二个 vim 中。要复制到全局剪切缓冲区,请使用+寄存器。该"键允许您指定在执行 yank 或 paste 操作时使用哪个寄存器。
在第一个 vim 中,在+寄存器中插入一行:
"+yy
Run Code Online (Sandbox Code Playgroud)
然后,从+第二个 vim 中的寄存器粘贴:
"+p
Run Code Online (Sandbox Code Playgroud)
有关可用寄存器的更多信息,请查看:help registers。您还可以使用"+p粘贴从系统上任何其他来源复制的文本。
小智 22
对我有用的最佳解决方案(不需要我改变我的键绑定习惯)在这里:https : //stackoverflow.com/questions/9166328/how-to-copy-selected-lines-to-clipboard-in- vim
只是放:
set clipboard=unnamedplus
Run Code Online (Sandbox Code Playgroud)
在您的.vimrc.
小智 16
我喜欢比尔的解决方案,我已经创建了一个映射:
vmap <leader>y :w! /tmp/vitmp<CR>
nmap <leader>p :r! cat /tmp/vitmp<CR>
Run Code Online (Sandbox Code Playgroud)
视觉模式下的第一个将所有内容复制到 /tmp/vitmp 中,第二个将 /tmp/vitmp 中的内容复制到文件中
小智 8
我在各种 Unix 系列机器之间走来走去,发现以下顺序总是对我有用:
在源 vi 会话中:
ESC m a标记第一线ESC m b标记最后一行:'a,'b w! xfer将范围写出到临时文件在目标会话中:
ESC :r xfer文本阅读我知道它不漂亮,但它总是对我有用!