Vim 跨终端复制粘贴

Vim 跨终端复制粘贴

通常的 vim只能在同一个窗口中yank工作paste(但可以跨文件和关闭/保存命令工作)。是否可以让它跨终端工作(从一个终端的窗口中拉出并粘贴到另一个终端中),如果可以,怎么做?

答案1

对于您来说,可能最简单的方法就是尝试输入set clipboard=unnamed.vimrc重新启动 vim 会话。

这样,你可以在一个窗口中运行yank(例如),而在另一个窗口中运行(例如),就可以正常工作,因为所有的 vim 会话都将共享相同的 X 选择缓冲区。yyputp

缺点是,一旦你在任何应用程序的任何其他窗口中选择某些文本,你的 yank 缓冲区就会被覆盖。

从好的方面来说,这也意味着你在 vim 中拖拽的任何内容现在都可以通过鼠标中键单击粘贴到任何应用程序中。

如果您不喜欢这种方式,您可以在 yank 之前键入"+或并输入命令,例如yank 一行。"*"+yy

表单+与剪贴板交互("+y类似于Ctrl+ C"+p类似于Ctrl+ V)。
表单*与选择缓冲区交互("*y类似于左键单击并拖动,"*p类似于中键单击)。

进行 GUI 选择X11 选择支持,以及剪贴板老鼠选项以了解详细信息。

答案2

可接受的解决方案在无头设置(无 X11)中不起作用。适用于任何 vim 环境的解决方案是将您的选择写入临时文件,:w! /tmp/temp_file然后从该文件粘贴到其他 vim 实例中:r! cat /tmp/temp_file

我将这两个命令映射为<leader>y和:<leader>p.vimrc

vmap <leader>y :w! /tmp/vitmp<CR>                                                                   
nmap <leader>p :r! cat /tmp/vitmp<CR>

来源

答案3

如果您想将整个文件复制到目标文件中。

在 vim 中打开目标文件。

将光标放在所需位置并输入以下内容:

:r /path_to_file/file.ext

这会将整个文件复制到光标所在的位置...

相关内容