如何在没有 X11 的 Linux 服务器上获得剪贴板支持

如何在没有 X11 的 Linux 服务器上获得剪贴板支持

我有一个在 VirtualBox 和 Vagrant 下运行的虚拟 Linux 开发环境。我使用 tmux 和 vim 来设置多个打开的 vim 实例。我希望能够在这些实例之间复制和粘贴。

我了解到剪贴板功能仅随 X11 提供。如何在仅命令行 Linux 环境中的多个 vim 实例之间启用剪贴板功能?

答案1

由于您已经在使用它,我建议您tmux完全支持复制和粘贴 - 请参阅手册页了解更多信息。

您可以使用命令查看当前的键绑定-在该列表中tmux list-keys查找begin-selectioncopy-selection和命令。paste-buffer

默认情况下,绑定是:

  • [- 启动复制/粘贴模式
  • h、、、-用于移动光标的导航jklvi
  • v- 开始文本选择(选择后,点击Enter复制到缓冲区以便稍后粘贴)
  • ]- 粘贴复制的文本

将其与基于诅咒的应用程序一起使用时存在一些限制vim(因为tmux无法管理滚动) - 您无法滚动回以前的输出。

作为替代方案(如果您只是在vim会话之间进行复制),您可以使用临时文件作为剪贴板(如果您不使用 X11,则需要这样做)。看这个帖子@muru 建议了解更多信息。

答案2

如果预期行为是关于存储 -> 检索,则不需要坚持使用剪贴板,该指令源自https://vim.fandom.com/wiki/Copy_and_paste_ Between_sessions_using_a_temporary_file

"custom copy'n'paste

vmap <C-c> :w! ~/.vbuf<CR>      "copy the current visual selection to ~/.vbuf
nmap <C-c> :.w! ~/.vbuf<CR>     "copy the current line to the buffer file if no visual selection
nmap <C-v> :r ~/.vbuf<CR>       "paste the contents of the buffer file

一旦我们将内容存储在 ~/.vbuf 中,我们就可以自由地以自己的方式检索内容。

相关内容