我经常想将文本从: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