背景

vim各种快捷建溜得飞起,然而与系统剪切板之间的复制粘贴一直都是我的痛。

每次需要从vim中拷贝些文字去浏览器搜索,都需要用鼠标选中vim的文字后,Ctrl+cCtrl+v,硬生生掐断了纯键盘的流畅感

而且,vim中的块选择多爽,如果只想要拷贝某一个块的数据,鼠标操作就完全没辙了

忍无可忍,无需再忍,今天就彻底解决这个问题

vim与系统剪切板之间的交互

vim支持clipboard特性

本章参考自 NearXDU的博客

确认vim编辑器是否支持clipboard特性

[GMPY@16:33 ~]$ vim --version| grep "clipboard"

支持这特性的检索结果应该包含 +clipboard,而不支持则会是 -clipboard

如果不支持怎么办?安装新的vim吧。可以参考这边文章 从源码安装vim

vim的寄存器

本章参考自 rainysia的博客

vim会有一些存储空间来暂存内容,vim中将这些存储空间叫寄存器。此寄存器非我们硬件所说的寄存器,可以理解为是一种cache。

例如我们在vim中y操作复制的内容,实际就是暂存到寄存器中。

怎么查看寄存器内容呢?在vim中执行

:reg

在vim中,这些寄存器也有好几个

表示符号 名称 作用
"" 无名(unnamed)寄存器 缓存最后一次操作内容
"0"9 数字(numbered)寄存器 缓存最近操作内容,复制与删除有别,"0寄存器缓存最近一次复制的内容,"1-"9缓存最近9次删除内容
"- 行内删除(small delete)寄存器 缓存行内删除内容
“a"z"A - ”Z 具名(named)寄存器 可用于主动指定
":, "., "%, "# 只读(read-only)寄存器 分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名
"= 表达式(expression)寄存器 用于执行表达式命令
"*, "+, "~ 选择及拖拽(selection and drop)寄存器 存取GUI选择文本,可用于与外部应用交互
"_ 黑洞(black hole)寄存器 不缓存操作内容(干净删除)
"/ 模式寄存器(last search pattern) 缓存最近的搜索模式

为了要与系统的剪切板交互,我们着重关注"*"+

在vim中进入visual视图后使用"Ny(N表示特定寄存器编好),将内容复制到特定的剪切板

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

"+y

注意的是,是 双引号 + 加号寄存器 + y。通过这命令copy后就可以去浏览器Ctrl+v啦

如果从浏览器Ctrl+c后,要粘贴到vim中,则需要

"+p

"*"+有什么差别呢?

"* 是在系统剪切板中表示选择的内容

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

使用快捷键

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

vim创建快捷键的原理可以看 jalused的博客

我使用的快捷键如下

" 支持在Visual模式下,通过C-y复制到系统剪切板
vnoremap <C-y> "+y
" 支持在normal模式下,通过C-p粘贴系统剪切板
nnoremap <C-p> "*p

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

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

vim与系统剪切板之间的复制粘贴的更多相关文章

  1. vim在系统剪切板的复制与粘贴

    https://blog.csdn.net/zhangxiao93/article/details/53677764

  2. ubuntu下vim与系统剪切板互相拷贝

    1.install xclip sudo apt-get install xclip 2. install gvim sudo apt-get install vim-gnome 此时使用 “+ 寄存 ...

  3. Linux下Vim编辑器访问系统剪切板

    默认情况下VIM使用的是内置的寄存器,而不是X Window的剪切板 启用系统剪切板支持 可以使用vim --version | grep clipboard查看,若clipboard前显示-标记,而 ...

  4. vim系统剪切板

    原文地址 1.vim常用复制粘贴命令 Vim的复制粘贴命令无疑是y (yank),p(paster),加上yy,P PS: vim有个很有意思的约定(我觉得是一种约定),就是某个命令的大小写都是实现某 ...

  5. wpf 复制/剪切到本地系统剪切板中以供右键粘贴用

    原文:wpf 复制/剪切到本地系统剪切板中以供右键粘贴用   http://www.cnblogs.com/yhdkzy/archive/2012/11/27/2790655.html   /// & ...

  6. vim与windows/linux之间的复制粘贴小结

    vim与windows/linux之间的复制粘贴小结 用 vim这么久了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开 ...

  7. 小菜学习Winform(六)剪切板和拖放复制

    前言 在做winform项目的时候有时候会用到复制粘贴,在.net中提供了Clipboard类来操作剪切板,我们来看下. clipbrd.exe clipbrd是系统剪切板程序,但是在vista及以上 ...

  8. Chrome浏览器读写系统剪切板

    IE浏览器支持直接读写剪切板内容: window.clipboardData.clearData(); window.clipboardData.setData('Text', 'abcd'); 但是 ...

  9. Android系统剪切板

    Android系统剪贴板 复制字符串到系统剪切板 /** * 复制文本到剪切板 * * @param text * @return */ @SuppressWarnings("depreca ...

随机推荐

  1. WPF ListView的使用

    <Window x:Class="XamlTest.Window14"        xmlns="http://schemas.microsoft.com/win ...

  2. 解决Android Studio运行时报Error:java.lang.NullPointerException (no error message)错误

    原文:解决Android Studio运行时报Error:java.lang.NullPointerException (no error message)错误                    ...

  3. TLD单目标跟踪算法程序详解--OpenTLD Code 详解

    TLD算法原理介绍:http://www.cnblogs.com/liuyihai/p/8306419.html OpenTLD源代码页: https://github.com/zk00006/Ope ...

  4. VS2015设置VS2017的“快速操作”快捷键Alt+Enter

    选项 -  环境 - 键盘 - 视图.快速操作和重构 添加“Alt+Enter (文本编辑器)”

  5. Android零基础入门第85节:Fragment使用起来非常简单

    Fragment创建完成后并不能单独使用,还需要将Fragment加载到Activity中,在Activity中添加Fragment的方式有两种:静态加载和动态加载,接下来分别进行学习. 一.静态加载 ...

  6. 青云QingCloud宣布完成C轮融资,金额1亿美元

    本轮融资由两家人民币基金领投,蓝驰创投跟投. 企业级基础云服务商青云QingCloud正式宣布完成金额为1亿美元的C轮融资,本轮融资由两家人民币基金领投,蓝驰创投跟投. 青云QingCloud公司成立 ...

  7. 用友的BS专用浏览器方案

    T+的这个BS中的B是自己的专用浏览器,这样有以下好处 1.避免了公用浏览器比如IE 里的其它插件的干扰2.避免了各个操作系统不同版本和不同种类浏览器的兼容问题,且只需要维护一个版本3.避免了共用浏览 ...

  8. QT运行cmd指令(两种办法:QProcess.start然后waitForFinished,运行cmd /c命令)

    QProcess p(); p.start("route");//写入要运行的指令即可 p.waitForStarted(); p.waitForFinished(); qDebu ...

  9. idea 导入maven项目

    1.import project 2.选择maven项目 3.选择第二个external moudle,选择maven, 4.点击next,一次点击1,2,3,4 5.设置maven环境 6.点击ok ...

  10. 基于ASP.NET的新闻管理系统(二)效果展示

    5. 新闻管理系统开发与实现 5.1前台新闻页面 主页面 新闻栏展示新闻 搜索新闻 菜单栏链接新闻 后台登录界面 大管理员后台管理界面 小管理员后台管理界面 修改密码 增加新闻界面 栏目管理界面   ...