【vim 学习系列文章 4 - vim与系统剪切板之间的交互】

这篇具有很好参考价值的文章主要介绍了【vim 学习系列文章 4 - vim与系统剪切板之间的交互】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上篇文章:【vim 学习系列文章 3 - vim 选中、删除、复制、修改引号或括号内的内容】
下篇文章:【vim 学习系列文章 5 - vim 中配置 cscope 过滤掉某些目录】

背景

从vim中拷贝些文字去其它地方粘贴,都需要用鼠标选中vim的文字后,Ctrl+c、Ctrl+v,硬生生掐断了纯键盘的流畅感,而且,vim中的块选择很方便,如果只想要拷贝某一个块的数据,鼠标操作就完全没辙了。

1.1.1 vim支持clipboard 检查

确认vim 编辑器是否支持 clipboard 特性:
【vim 学习系列文章 4 - vim与系统剪切板之间的交互】,# vim 学习系列文章,vim,vim 复制,vim 剪切板
支持这特性的检索结果应该包含 +clipboard,而不支持则会是 -clipboard

1.1.2 vim的寄存器

vim会有一些存储空间来暂存内容,vim中将这些存储空间叫寄存器。例如我们在vim中y操作复制的内容,实际就是暂存到寄存器中。怎么查看寄存器内容呢?在vim中执行

:reg

在下图中处于 “name” 那列的都是寄存器的名字,为了要与系统的剪切板交互,我们着重关注寄存器 "*"+
【vim 学习系列文章 4 - vim与系统剪切板之间的交互】,# vim 学习系列文章,vim,vim 复制,vim 剪切板
在 vim 中进入visual 视图后使用 "Ny(N表示特定寄存器编好),将内容复制到特定的剪切板

因此,如果要把数据从vim拷贝到系统剪切板,我们只需要在visual模式下执行:

"+y

双引号 + 加号寄存器 + y。通过这命令copy后就可以去其它地方Ctrl+v 或者执行Shift+Insert命令也可以将从vim 复制的内容进行黏贴。


如果从其它地方 Ctrl+c 后,要粘贴到 vim中,则需要:

"+p

"*"+有什么差别呢?

"* 是在系统剪切板中表示选择的内容
"+ 是在系统剪切板中表示选择后Ctrl+c复制的内容

1.1.3 使用快捷键#

"+y"+p的输入挺麻烦的,直接为他们创建个快捷键

" 支持在Visual模式下,通过C-y复制到系统剪切板

vnoremap <C-y> "+y

" 支持在normal模式下,通过C-p粘贴系统剪切板

nnoremap <C-p> "*p

将上面的内容copy到~/.vimrc中即可生效,效果就是:

在 vim 的 visual 模式下选中了要复制的内容,再用Ctrl + y复制到系统剪切板,直接去其他窗口中Ctrl + v粘贴
在其他窗口中选择之后(不一定要Ctrl + c),可直接在 vim 中用Ctrl + p来粘贴

上篇文章:【vim 学习系列文章 3 - vim 选中、删除、复制、修改引号或括号内的内容】
下篇文章:【vim 学习系列文章 5 - vim 中配置 cscope 过滤掉某些目录】

推荐阅读:https://www.cnblogs.com/gmpy/p/11177719.html文章来源地址https://www.toymoban.com/news/detail-629960.html

到了这里,关于【vim 学习系列文章 4 - vim与系统剪切板之间的交互】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【vim 学习系列文章 11 -- vim filetype | execute | runtimepath 详细介绍】

    下篇文章:【vim 学习系列文章 12 – vimrc 那点事】 上篇文章:【vim 学习系列文章 10 – vim 将代码中空格高亮显示方法】 在网上我们经常可以看到vimrc配置中有 filetype plugin indent on 这个配置,那么这个配置的功能是什么呢? filetype plugin indent on 是 Vim 中一个用于启动文件类型特

    2024年02月07日
    浏览(42)
  • 【vim 学习系列文章 18 -- 选中行前后增加两行】

    请阅读 【嵌入式开发学习必备专栏 之 Vim】 为了在 Vim 中实现这个功能,需要定义一个 Vimscript 函数,该函数能够在当前选中的行(Visual 模式下)的最前面一行和最后一行增加空白行。然后,可以为这个函数创建一个快捷键映射,以便在 Visual 模式下快速使用。 以下是如何步

    2024年04月13日
    浏览(36)
  • 【vim 学习系列文章 5 - cscope 过滤掉某些目录】

    上篇文章:【vim 学习系列文章 4 - vim与系统剪切板之间的交互】 下篇文章:【vim 学习系列文章 6 – vim 如何从上次退出的位置打开文件】 第一步 创建自己的 cscope 脚本 ~/.local/bin/cscope.sh ,如下: 我的这个脚本首先去区分当前执行 cscope 命令的目录是 rt-thread 目录还是 linux 目

    2024年02月12日
    浏览(82)
  • 【vim 学习系列文章 19 -- 映射快捷键调用两个函数 A 和B】

    请阅读 【嵌入式开发学习必备专栏 之 Vim】 在 Vim 中,如果想通过按下 gcm 来调用两个函数,比如 FunctionA 和 FunctionB ,需要先定义这两个函数,然后创建一个映射。这个映射将会在被触发时依次调用这两个函数。 首先,确保 .vimrc 文件中包含了这两个函数的定义,以及一个用

    2024年04月13日
    浏览(59)
  • Linux系列文章 —— vim的基本操作(误入vim退出请先按「ESC」再按:q不保存退出,相关操作请阅读本文)

    vim-操作篇 进程概念篇 进程地址空间篇 Linux,是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用

    2024年02月03日
    浏览(42)
  • 实现点击复制到剪切板功能

    该功能使用VueUse实现 什么是 VueUse VueUse不是Vue.use,它是为Vue 2和3服务的一套Vue Composition API的常用工具集,是目前世界上Star最高的同类型库之一。它的初衷就是将一切原本并不支持响应式的JS API变得支持响应式,省去程序员自己写相关代码。 VueUse 是一个基于 Composition API 的实

    2024年02月15日
    浏览(41)
  • js实现文本复制到剪切板

    复制文本到剪切板可使用navigator.clipboard.writeText()方法,如需兼容ie等老版本浏览器可使用execCommand()方法。

    2024年02月13日
    浏览(30)
  • vue中实现复制内容到剪切板

    在项目中 点击按钮 复制 某行文本是很常见的 应用场景, 在 Vue 项目中实现 复制功能 需要借助 vue-clipboard2 插件。 1、安装 vue-clipboard2 依赖 ( 不行的话可以切换成淘宝镜像源 npm config set registry https://registry.npm.taobao.org ) 2、在 main.js 文件中全局引入插件 示例代码如下: 3、

    2024年02月13日
    浏览(44)
  • c# 操作剪切板,复制文本或文件

     1.将文本内容放入剪切板          Clipboard.SetDataObject(\\\"要复制的内容\\\");//复制内容到粘贴板 2.将文本内容从剪切板取出               IDataObject iData = Clipboard.GetDataObject();           if (iData.GetDataPresent(DataFormats.Text))            {            label1.Text = (String)iData.GetData(D

    2023年04月08日
    浏览(38)
  • 【Unity复制功能】Unity复制到剪切板三端实现方法

    一、安卓和IOS方案 直接使用Unity提供的GUIUtility.systemCopyBuffer方案 链接: https://docs.unity.cn/cn/2021.3/ScriptReference/GUIUtility.html 例如: 二、小程序(WebGL) 1、web这边需要定义复制接口:WebSetCopy 2、Unity这边 首先定义方法调用web接口 然后在胶水函数中声明

    2024年04月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包