vim - 如何在 Vim 的终端模式下复制和粘贴?
问题描述
我经常想将文本从:terminal
窗口复制到普通文本缓冲区。目前我exit
的 shell 会话并从历史记录中复制。
必须有更好的方法来解决这个问题。
解决方案
复制
要从终端窗口复制,请按CTRL-W N(这是大写的 N)1或CTRL-\ 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,我保留了原来的符号
推荐阅读
- amp-html - AMP 启用桌面网站是否有意义?
- php - cakephp 下载缺少标题内容长度的大文件
- tensorflow - 神经网络中的分类特征值
- unity3d - GameSparks 手动配对
- sql - Hibernate/Spring:悲观与乐观锁定?
- vb.net - IListSource 不包含任何数据源
- apache-kafka - Kafka流处理过程中处理数据的异常
- google-app-engine - App Engine Go Standard - 存储/图像 API
- java - 在 Spring 控制器中重用具有不同验证模式的表单数据类
- javascript - 获取 JavaScript 中 HTML-Special-Characters 的名称