vim 剪贴板

vim很强大,时常都会有新的惊喜和发现。今天解决的是两个关于剪贴板的问题。

1、怎样在X系统与vim进行拷贝粘贴操作(即vim与系统剪贴板的交流)?

2、拷贝某段文本A,覆盖文本B(或者用d或x删除B)。之后再使用p进行粘贴,就变成了B的内容,如果希望继续粘贴A,怎么办?

首先来点基础,vim有多个剪贴板,其中就包括了系统剪贴板。使用命令:reg可以看到各个剪贴板的内容。其中“”表示当前使用的剪贴板,“0-9是历史剪贴板,“#就是系统剪贴板了(你可以在系统里拷贝一些东西,看是不是会出现在“#剪贴板里)。在vim中使用y可以把内容拷贝到“”号剪贴板,继续y会把新的东西放入“”,而原来“”的东西就会被压入“0-9的各个历史剪贴板中。X11系统下还有一个“*的剪贴板对应中键拷贝粘贴,windows不知道有没有。

解决第一个问题:

“+y把选中内容拷贝到”+号剪贴板,即系统剪贴板

“+p把系统剪贴板的内容粘贴到vim,这一个用shift+insert也可完成

解决第二个问题:

“0p可以把已经被挤到”0剪贴板的内容A重新粘贴出来

嫌长的做一个map,映射到某个功能键或组合就方便了。

载自:http://www.wentrue.net/blog/?p=91

注意事项: 在vim中输入:reg就会显示个剪贴板的内容,如果看不到"+ 这个剪贴板,那还需要安装vim增强功能

sudo apt-get install vim-gui-common

其实我个人认为作者讲得不是很好,我研究vim剪贴板就两个目的:

1) 将vim中的数据复制到系统剪贴板

2)粘帖上上次复制的内容( 我复制了一行,现在删除一行,想要粘帖之前复制而不是现在删除的这一行)

问题1:

先选中要复制的数据 "+y( 1.输入“号 2. 输入+ 号,3.输入字母y, + 代表系统剪贴板,意思就是将当前的内容定向复制到系统剪贴板),要使用刚复制的内容,只需要ctrl+v了,很方便。

顺便提一下,将系统剪贴板的内容复制到vim中,只需要在normal模式下输入"+p即可,你应该懂的。

问题2:

默认复制和粘帖都发生在"0 剪贴板中,我们只要将数据复制到其他剪贴板中就不会被马上替换掉了,使用方法:先选中要复制的内容,然后“2y(以2号剪贴板为例)就复制到2号剪贴板中了,粘帖的时候只需要在normal模式输入"2p即可。


### 使用系统剪切板在Vim中进行复制和粘贴 对于希望利用系统剪切板功能来增强编辑体验的用户而言,在Vim中实现这一目标的方法取决于具体的环境配置以及所使用的操作系统。大多数情况下,如果Vim编译时包含了对剪切板的支持,则可以直接通过内置命令访问系统剪切板[^2]。 #### 利用特殊寄存器操作剪切板 为了能够从或向系统的全局剪切板执行复制与粘贴动作,可以借助特定的寄存器`*`或是`+`来进行交互。例如,要将当前行的内容拷贝到系统剪切板上,可以在正常模式下输入如下指令之一: ```vim "*yy 或 "+yy ``` 上述任一方法均能达成目的;其中前者代表的是X Window的选择缓冲区而后者则是针对跨平台通用的剪切板支持[^3]。 #### 自定义映射提高效率 考虑到默认组合键可能不够直观或者难以触及,可以通过修改`.vimrc`文件来自定义更加便捷的操作方式。比如下面这条语句就实现了当处于可视模式下选中文本并按下`Ctrl+C`即可完成至系统剪切板的复制工作: ```vim vnoremap <C-c> "*y ``` 这不仅简化了原本较为繁琐的过程,同时也使得习惯于图形界面下的快捷键使用者更容易适应终端内的文本编辑流程。 #### 替代方案适用于不同场景 除了上述基于键盘输入的方式外,某些应用程序可能会把`Ctrl+C`解释成其他含义(如终止进程),这时可考虑采用`Ctrl+Insert`作为替代性的复制手段,相应的,`Shift+Delete`用于剪切,而`Shift+Insert`负责粘贴内容。尽管这类做法如今已不常见,但在部分环境中依旧保持着良好的兼容性[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值