VIM的剪切板

tunzao bio photo By tunzao Comment

使用vim也好长时间了,差不多快三年了吧(起始大部分时间在使用模拟器)?
竟然连怎么把文本从vim复制到其他编辑器都不知道,
真是弱爆了。

终于忍不住搜索了一番,粘贴下来:

vim有若干个剪切板(寄存器),具体数目不定(有人说是12个,至少应该有26个)。不过哈,可以通过:reg命令查看剪切板里的内容。""是默认剪切板(无名寄存器),执行y(复制)和p(粘贴)时,默认操作的都是这个板。"+是系统剪切板(这个寄存器并不是所有环境都有的),复制粘贴到它就能和其他编辑器交互了。把文本复制到指定剪切板:"Ny(N是剪切板编号,如:a),粘贴同理。复制到系统板"+y,从系统板粘贴"+p

vim还有几个特殊的寄存器:

复制专用寄存器("0),当使用y命令时,要复制的文本除了拷贝到无名寄存器外还会拷贝到复制专用寄存器,这样复制的内容就不会被其他操作(x,d)给覆盖。

黑洞寄存器("_),如果我们执行删除操作时指定使用这个寄存器,那么被删除的文本将不保存任何副本(不指定寄存器时被删除的内容会保存在无名寄存器里)。

选择专用寄存器("*),X11桌面环境支持一种叫做主剪切板的剪切板,它保存着上次被高亮选中的文本,可以用鼠标中间把它粘贴出来。vim的星号寄存器就对应着主剪切板。Windows和Mac OSX没有主剪切板的概念,所以"+"*可以混用。

表达式寄存器("=),当我们从表达式寄存器获取内容时,vim将跳到命令行模式,并显示提示符”=”。我们可以输入一段vim脚本表达式然后按执行,如果返回的是字符串(或可以强制转换成字符串的数据),vim将会使用它。

其他的特殊寄存器有: "%(当前文件名),"#(轮换文件名),".(上次插入的文本),":(上次执行的Ex命令),"/(上次查找的模式)。

comments powered by Disqus