首页 > 解决方案 > 如何在 Vim 的终端模式下复制和粘贴?

问题描述

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

必须有更好的方法来解决这个问题。

标签: vim

解决方案


复制

要从终端窗口复制,请按CTRL-W N(这是大写的 N)1CTRL-\ CTRL-N(这不是大写的 N)进入正常模式。从那里你可以使用所有常用的 vim 命令来复制和粘贴内容。

进入插入模式会让你回到你的 shell。


粘贴

要从寄存器粘贴到终端窗口,您必须处于终端作业(“插入”)模式。

CTRL-W "后跟寄存器。


:help Terminal-mode告诉我们:

当作业运行时,终端的内容受作业的控制。这包括光标位置。键入的密钥被发送到作业。终端内容可以随时更改。这称为终端作业模式。

使用 CTRL-W N(或 'termkey' N)切换到终端正常模式。现在终端窗口的内容由 Vim 控制,作业输出暂停。CTRL-\ CTRL-N 做同样的事情。

[...]

在 Terminal-Normal 模式下,您可以使用常用的 Vim 命令移动光标、可视化标记文本、抽出文本等。但您不能更改缓冲区的内容。将启动插入模式的命令,例如“i”和“a”,将返回到终端作业模式。

在终端窗口中查看:h terminal-typing更多有用的命令。


1不幸的是,vim 帮助并没有告诉你它是大写的 N,我保留了原来的符号


推荐阅读