我知道带有窗口管理器的 Linux 桌面(例如基于 X11 的系统)有一个系统剪贴板,但如果不使用窗口管理器,是否有剪贴板?
例如,在 Vim 中,可以通过 + 寄存器访问系统剪贴板,但这仅适用于在 X-windows 上运行的 Vim 的 GUI 版本,因为它使用窗口管理器的剪贴板。如果您使用基于文本的 Vim 版本,例如从终端或从虚拟控制台,则它不起作用。例如,如果您在不同的虚拟控制台中打开两个不同的 Vim 实例,您将如何在它们之间进行复制和粘贴?
screen
并tmux
支持复制粘贴缓冲区,因此这是一种可能的方法(有关详细信息,请参阅其他答案)。
仅使用 Linux 虚拟控制台,您可以运行gpm
(或其libinput
替代品consolation
)以提供基于鼠标的复制粘贴:用鼠标左键选择文本,用鼠标中键粘贴。
据我所知,这些都没有与 Vim 直接集成,因此您只能复制屏幕上或回滚缓冲区中可见的内容(如果有的话)。
tmux
具有类似于 X 剪贴板的“粘贴缓冲区”,并且可以在同一主机上运行的不同会话之间访问。在会话中启动每个vim
实例tmux
(无论是在单个会话中,还是每个实例都在自己的会话中 - 对于这些目的来说并不重要),并且您可以轻松地在它们之间复制和粘贴文本:
假设默认键绑定为,您可以通过按+tmux
进入复制模式。导航到要复制的文本的开头并点击+ ,移动光标以突出显示所需的文本并点击。这会将所选内容复制到粘贴缓冲区。现在您可以切换到其他会话(或在 下运行的任何其他程序),然后按+将缓冲区内容粘贴到当前窗格中。CTRLB[CTRLSPACEENTERvim
tmux
CTRLB]
tmux
维护多个粘贴缓冲区;您可以按CTRL+B#查看全部内容,或按CTRL+B=直观地选择粘贴缓冲区并将其内容插入当前窗格中。
归档时间: |
|
查看次数: |
1476 次 |
最近记录: |