如何在 Vim 的终端模式下复制和粘贴?

  • 本文关键字:复制 模式 Vim 终端 vim
  • 更新时间 :
  • 英文 :


我经常想将文本从:terminal窗口复制到普通的文本缓冲区。目前,我 exit shell会话并从历史记录中复制。

必须有更好的方法。

复制

要从终端窗口中复制 ctrl-w n (这是Capital N) 1 ctrl- ctrl- ctrl-n (这是不是资本n)进入正常模式。从那里您可以使用所有常用的vim命令来复制和粘贴东西。

输入插入模式会将您送回外壳。


要从寄存器粘贴到终端窗口中

ctrl-w" 接着寄存器。


:help Terminal-mode告诉我们:

作业运行终端的内容时 工作。其中包括光标位置。打字键已发送到工作。 终端内容可以随时更改。这称为终端工作 模式。

使用ctrl-w n(或'termkey'n)切换到终端正常模式。现在 终端窗口的内容在VIM的控制下,作业输出为 暂停。ctrl- ctrl-n也一样。

[...]

在终端正常模式下,您可以使用通常的VIM移动光标 命令,视觉上标记文本,拉克文本等。但是您无法更改 缓冲区的内容。将启动插入模式的命令,例如 'i'和'a',返回终端工作模式。

有关终端Windows中更有用的命令,请参见:h terminal-typing


1 不幸的是,vim帮助没有告诉你它是资本n,我保留了原始符号

可以使用Shift Insert作为快捷方式将剪贴板粘贴到运行的终端会话中。设置映射像

:tmap <S-Insert> <C-W>"+

将导致从+寄存器粘贴。或者使用*寄存器,有时在MS Windows中效果更好。

.vimrc中的剪贴板设置设置为使用系统剪贴板作为VIM的剪贴板。取决于您的操作系统可能有所不同,假设您正在使用Mac OS:set clipboard=unnamedplus

然后,您可以使用y命令复制然后仅通过CMD V粘贴在另一个应用程序上,请记住,通过单击任何地方或按Ctrl+ Ctrl+n

来退出终端的插入模式。

最新更新