VIM系统复制粘贴
1 需求
系统复制粘贴主要是满足下面两个需求。
在多个对象之间复制粘贴
- vim窗口与vim窗口之间
- 外部界面与vim窗口之间
不变复制粘贴。从外部界面复制粘贴到vim窗口时,文本不发生任何变化。
2 vim寄存器
2.1 寄存器介绍
不得不介绍以下vim寄存器,它是复制粘贴的中间媒介。
在vim中通过以下命令能查看所有寄存器:
:reg
vim包含以下寄存器:
| 寄存器名称 | 编号 |
|---|---|
| 匿名寄存器 | "" |
| 编号寄存器 | "0 到 "9 |
| 小删除寄存器 | "- |
| 26个命名寄存器 | "a 到 "z |
| 3个只读寄存器 | ": 和 ". 和 "% |
| Buffer交替文件寄存器 | "# |
| 表达式寄存器 | "= |
| 选区和拖放寄存器 | "* 和 "+ 和 "~ |
| 黑洞寄存器 | "_ |
| 搜索模式寄存器 | "/ |
2.2 复制粘贴过程
从A对象到B对象的复制粘贴,其逻辑过程是:
- 首先,将数据或文本从A对象复制到寄存器;
- 然后,将数据或文本从寄存器复制到B对象。
注意:系统复制粘贴使用+寄存器。
2.3 "寄存器的启用
通过命令查看"寄存其是否启用。
:reg
如果没看到+寄存器,说明未启用。这是需要安装vim-gtk。
sudo apt-get install vim-gtk
安装完毕以后,再次检测+寄存器,这时会发现已启用。
3 复制粘贴操作
3.1 vim窗口与vim窗口之间
步骤如下:
- 选择文本,使用"+y复制文本;
- 定位到目的窗口然后,使用"+p粘贴文本。
3.2 从vim窗口到外部界面
步骤如下:
- 选择文本,使用"+y复制文本;
- 定位到外部界面后,使用右键粘贴或者外部软件自身的快捷键完成粘贴。
3.3 从外部界面到vim窗口
对于少量文本,步骤如下:
- 在外部界面中,选择复制文本;
- 进入vim窗口定位位置,使用"+p粘贴文本。
3.4 从外部界面到vim窗口(不变粘贴)
这种情况一般是复制大量文本,要求在粘贴过程中文本保证不变。
步骤如下:
- 在外部界面中,选择复制文本;
- 进入vim窗口定位位置,输入命令:
:set paste
其目的是取消自动缩进等自动操作,避免文本发生不在期望中的变化。
- 使用"+p粘贴文本。
- 粘贴完成后,输入命令:
:set nopaste
其目的是回复自动缩进的自动操作。
VIM系统复制粘贴的更多相关文章
- vim的复制粘贴(包括系统剪贴板)
1.vim常用复制粘贴命令 Vim的复制粘贴命令无疑是y (yank),p(paster),加上yy,P PS: vim有个很有意思的约定(我觉得是一种约定),就是某个命令的大小写都是实现某种功能,只 ...
- 【vim小小记】vim的复制粘贴(包括系统剪贴板)
1.vim常用复制粘贴命令 Vim的复制粘贴命令无疑是y (yank),p(paster),加上yy,P PS: vim有个很有意思的约定(我觉得是一种约定),就是某个命令的大小写都是实现某种功能,只 ...
- Vim中复制粘贴缩进错乱问题的解决方案
Vim中复制粘贴缩进错乱问题的解决方案 当你把这段缩进优美的代码直接ctrl+c,ctrl+v到Vim的时候,就会出现如下恶心的情况 可以看到,这种直接粘贴的方式会导致代码丢失和缩进错乱等情况. 解决 ...
- 在LINUX终端和VIM下复制粘贴
http://www.tinylab.org/linux-terminal-and-paste-copy-under-vim/ 在GUI界面下,我们可以很自由的复制粘贴.但是在字符界面下,我们不得不用 ...
- vim的复制粘贴小结
vim帮助文档里与粘贴板有关的内容如下: vim有12个粘贴板,分别是0.1.2.….9.a.“.+:用:reg命令可以查看各个粘贴板里的内容.在vim中简单用y只是复制到“(双引号)粘贴板里,同样用 ...
- vim的复制粘贴小结(转)
原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...
- vim 的复制粘贴命令,以及使用寄存器来存放要复制的内容;
一,y(yanks)复制,p(paste)粘贴: yy 复制当前行,2yy,复制2行: Y 复制整行:Y=yy; p 粘贴到光标后: P 粘贴到光标前: 注意vim会知道你复制内容的是整行还是一个矩 ...
- 【vim】复制粘贴相关操作
复制: 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了. 其他命令模式下剪切命令: yy:复制当前行 nyy:n表示大于1的数字,复制n行 yw:从光标处复 ...
- iOS 应用内的系统复制粘贴菜单显示的语言非中文
在应用的 Info.plist 文件中添加以下代码: <key>CFBundleLocalizations</key> <array> <string> ...
随机推荐
- C# http 性能优化500毫秒到 60 毫秒
偶然发现 C# 的 HttpRequest 要比 Chrome 请求同一Url 慢好多.C# HttpRequest 要500毫秒 而Chrome 只需要 39ms. 作为有责任感的 码农.这个 必须 ...
- python第七天
复习: 1.深浅拷贝 值拷贝:直接赋值 = 号, 列表中的任何值发生改变,第二个中的值都会随之改变浅拷贝:通过copy()方法 ls2 = ls.copy(),第一个中存放的值的地址没有改变, 但内部 ...
- .NET技术-2.0. 操作数据库-EF
.NET技术-2.0. 操作数据库-EF 项目参见: EF安装配置 参见: https://www.cnblogs.com/1285026182YUAN/p/10772330.html https:/ ...
- QPS从0到4000请求每秒,谈达达后台架构演化之路
达达是全国领先的最后三公里物流配送平台. 达达的业务模式与滴滴以及Uber很相似,以众包的方式利用社会闲散人力资源,解决O2O最后三公里即时性配送难题(目前达达已经与京东到家合并). 达达业务主要包含 ...
- 谈谈JAVA中的安全发布
谈谈JAVA中的安全发布 昨天看到一篇文章阐述技术类资料的"等级",看完之后很有共鸣.再加上最近在工作中越发觉得线程安全性的重要性和难以捉摸,又掏出了<Java并发编程实战& ...
- Python的一些高级特性以及反序列化漏洞
0x01 简述 文章主要记录一下python高级特性以及安全相关的问题 python作为脚本语言,其作为高级语言是由c语言开发的,关于python的编译和链接可以看向这里https://github. ...
- Python+Selenium+Unittest框架使用——Selenium——定位元素(二)
1.定位元素(id.name.class.link.partial link) (1)find_element_by_id() 用百度定位测试,用firebug查看定位元素 ,输入框的id为“kw”, ...
- MyRolan (快速启动小工具)
类似 Rolan的快速启动工具. 启动后隐藏,当鼠标移至左上角时,窗口显示,点击项目可运行程序. GitHub地址: MyRolan . #if defined(UNICODE) && ...
- 多个Fragment在一个activity中通过按钮的展示方法
fragment使用方法 1. 创建主Mainactivity extends AppCompatActivity 2. Oncreate & setContentView 3. 完成XML的 ...
- json基础小结
定义:json是一种前后端数据传送的格式规定json对象,json字符串 (区别 json字符串是有json格式的字符串)1.创建(两中json结构,一种是对象,一种是数组)json对象:var ao ...