跳转到主要内容
你行网

Main navigation

  • 首页
  • 文章
  • 教程
  • 视频
  • 下载
  • 社区
  • 网站导航
User account menu
  • 登录

面包屑

  1. 首页

如何在 Vim 中复制文本(到剪贴板)

由 hrs, 11 八月, 2023

想要从 Vim(在命令行上)获取文本并输入到另一个应用程序中?在这里了解如何将文本从 Vim 复制到Mac、Linux 和 Windows 上的系统剪贴板。

首先,注意一致的用户界面
“请注意一致的用户界面和错误报告,”Patrick J. LoPresti 在 1992 年 7 月的一个炎热的日子里写道,关于Unix行编辑器ed和典型的第一次使用它:

golem$ ed
?
help
?
?
?
quit
?
exit
?
bye
?
hello?
?
eat flaming death
?
^C
?
^C
?
^D
?

当然,今天人们对Vim也开了同样的 玩笑(vi 是 ed 的后裔)。

假设您知道如何退出 Vim,让我们尝试从中获取文本而不是我们自己。(下面使用命令行工具复制行的命令在标准文本编辑器 ed 中的工作方式相同。)

如何在 Vim 中复制文本(到剪贴板)
使用剪贴板寄存器
所需时间:  1分钟

在Mac、Windows和Linux上将文本从 Vim 复制到系统范围的剪贴板:

按V进入可视模式。
“V”不进入视觉模式:Esc先按下以确保您处于正常模式。
不需要可视化:当然,你不需要使用可视化模式来复制到 Vim 中的剪贴板;所有其他指定要复制/复制内容的方法也都有效(例如,y3w复制三个单词)。

使用移动键仅突出显示您要复制的文本。
Vim 快捷键:按J向下、K向上、H向左、L向右、W向前跳一个单词、按单词向后B跳、最后一行、第一行等。Shift GGG

现在输入"*y.
原因如下:Vim 有多个内部剪贴板(称为寄存器),其中一些很特殊。要访问任何剪贴板,请在寄存器前加上"(引号),并且系统剪贴板具有特殊名称*(星号)。要将文本复制到寄存器,您最终需要使用y(“yank”)。


使用 Vim 剪贴板寄存器将文本复制到系统剪贴板
使用命令行工具
如果使用 Vim 的系统剪贴板寄存器进行复制失败,您可以重新启动以将文本发送到命令行工具:

按Shift V进入视线模式。
“Shift V”不进入视觉模式:Esc先按下以确保您处于正常模式。
不必是可视化的:当然,您不需要使用可视化模式在 Vim 中进行复制(见下文);不过,为了在 Vim 和Neovim中以一种平易近人的方式(如果可能不是最快)复制文本,视觉模式应该可以达到目的。
总是行:请注意,Vim 只允许您复制整行;虽然您可以使用视觉模式突出显示一行的一部分,但 Vim 仍会将整行文本发送到剪贴板。有关复制行的一部分的信息,请参阅下文。
使用动作键仅突出显示要复制的行。
类型:.
现在,输入适用于您的操作系统的命令,将文本从 Vim 复制到剪贴板,如下所示:'<,'>。
macOS:附加:w !pbcopy到命令行(使用 pbcopy 从终端复制到剪贴板)。
Windows:键入:w !clip。
Linux:写:w !xclip -selection clipboard。
示例:在 Mac终端中,Vim 命令行将读取'<,'> :w !pbcopy。
按Enter。


将文本从 Vim 复制到 Mac 剪贴板
如何在 Vim 中复制文本(并复制到剪贴板):常见问题解答
我可以在没有视觉模式的情况下从 Vim 进行复制吗?
是的。

您可以使用任何允许您拉动 * 寄存器以复制到剪贴板的选择命令。

示例:用于:%y *将整个文档复制到剪贴板。

或者,将行从 Vim 复制到系统剪贴板,而不先使用命令行工具突出显示它们:

按:(冒号)进入命令行。
键入first_line,last_linew !后跟操作系统的复制命令(见上文)。
Lines:将first_line 替换为要复制的第一行的编号,将last_line 替换为最后一行。
最后一行:您可以用于$最后一行。
所有行:%代表整个文档;它相当于0,$(从第一行到最后一行)。
示例:将命令读取:3,7w !clip为复制 Windows 命令行上的第 3 行至第 7 行。
整个文档:用于:w !xclip -selection clipboard复制整个文件,例如在 Linux 上。
如果剪贴板寄存器不起作用,如何复制部分行?
如果剪贴板寄存器无法复制到系统剪贴板,要复制行的一部分,通常最简单(因此也是最好)依赖终端的复制命令:

使用鼠标突出显示要复制的文本。
行内:最好仅突出显示行的一部分,否则无关字符(例如行号)也会被复制,并使使用文本变得更加困难。
按Ctrl C或Command C进行复制,或右键单击并从上下文菜单中选择复制。
如何在图形 Vim 中复制?
在使用操作系统图形界面(而不是命令行)的 Vim 中,您可以突出显示文本并使用标准复制命令(通常为 或Ctrl C)直接复制Command C,或者使用上面的系统剪贴板寄存器。

标签

  • vim
  • 登录或注册以发表评论

评论

相关文章

coc.nvim 的补全快捷键设置
如何安装 coc-intelephense
vim 缓冲区列表命令
vim 一些常用设置的解释
vim出现无效寄存器错误
vim 如何取消高亮
vim 如何关闭多个文件
在 ubuntu 系统安装Vim-Plug
如何使用 Vim 的 Syntastic 插件
vim 设置默认窗口大小
Linux中如何用Vim复制粘贴外部内容
vim 命令使用大全
Vim编辑模式下查找与取消查找
vim在每行行首或行尾添加或删除内容
vim 查找与替换
如何在 Vim 中自动完成 CSS 语法
如何在 Vim 中自动完成 HTML 代码
Vim 上的 CSS 自动补全功能
vim-surround命令使用方法
vim yy复制p粘贴dd删除x剪切命令

文章标签

CSS
Excel
ubuntu
php
五笔
vim
Linux
HTML
command
drupal 7
composer
centos
Mysql
drupal 8
模块(module)
VPN
drush
JavaSrcipt
apache
drupal 9
英语
Drupal
SEO
nerdtree
network
果树种植
surround
drupal10
主题(theme)
phpmyadmin
ssh
权限
yum
二进制
声音
ssl
selinux
HTML5
用户
password
Dreamweaver
flameshot
颜色
翻译
uploadprogress
DDEV
视图(views)
firewalld
gzip
快捷键
kernel
xdebug
错误
ckeditor
mbstring
C语言
源地址
简介
php扩展
电脑基础
certbot
git
apt
压缩解压
表单
电子秤
httpd
WireGuard
邮件验证
breadcrumb
AI
superfish
diff
重定向
网站备份
摄影
tagclouds
docker
java
csharp
短信验证
adsense
drupal9
电脑技巧
simple_adsense
算法
RSS
youtube
版本号
JavaScript
badblocks
端口
cookie
VUE
网站运营
计算机基础
gimp
form
mod_expires 模块
nginx
zip
http验证
重定向,301
curl
netstat
input
赚钱
ip
dns
RFID
标签优化
drupal11
maven
drupal 11
npm
哈希值
字段
更多
RSS源
本站由阿里云强力驱动,幸运券优惠链接
Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号