在LINUX终端和VIM下复制粘贴
http://www.tinylab.org/linux-terminal-and-paste-copy-under-vim/
在GUI界面下,我们可以很自由的复制粘贴。但是在字符界面下,我们不得不用鼠标选定,然后单击右健,选择复制,再到别处去Ctrl-v。并且对于 那些用没有配置过的VIM来说,VIM的粘贴板和X Window的粘贴板还不共享。这在码字的过程中,感觉非常不流畅。下面,我们就尝试解决这个问题。
首先我们得让VIM和X Window共享一个粘贴板,这样我们就可以像在GUI界面下一样去复制粘贴了。我们可以在自己的VIM配置文件.vimrc里添加这么一行:
|
1
|
set clipboard=unamedplus
|
这 行配置的意思是让VIM把$$’+'$$这个寄存器(粘贴板)设置为平常yank和p操作的默认粘贴板,而$$’+'$$寄存器在VIM里就是代表X Window的粘贴板。这样我们就让VIM和X Window共享一个粘贴板,再也不用担心VIM里复制的东西,不能在VIM外去粘贴。
但是这里要注意,如果你下载的是基本VIM的话,按照上面的设置是无法实现预期的效果的。因为VIM基本版默认不支持X Window的粘贴板,所以你得安装VIM完全版,或者巨型版。你可以执行如下命令去判断你的VIM是否支持X Window的粘贴板:
|
1
|
vim --version | grep clipboard
|
如果clipboard和xterm_clipboard带有加号,那么就表示支持这个特性,减号就表示不支持。
在Ubuntu下面,你应该安装vim-gnome,而在fedora下面,你需要安装vim-X11。
这都做完后,你会发现VIM在每次退出的时候都会清空粘贴板,而这并不是我们想要的。我们可以在VIM配置文件里添加下面一行配置,来让VIM在退出的时候,保留粘贴板中的内容:
|
1
|
autocmd VimLeave * call system("xsel -ib", getreg('+'))
|
这个配置其实就是在VIM每次退出的时候,运行xsel命令来把’+'寄存器中的内容保存到系统粘贴板中,所以这个配置要求你安装xsel。
现在,假设我们从VIM中yank一些内容,然后退出VIM,粘贴到终端命令行上,这个时候我们可能还是得拿起鼠标,右键粘贴。其实在大多数terminal中都有一个快捷键:Ctrl-Shift-v,把内容粘贴到命令行中。这样我们就解决了在终端下面粘贴的问题。
可能有人会问,在终端下面复制怎么办?这个,暂时还没有找到很满意的解决方案。
在LINUX终端和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的时候,就会出现如下恶心的情况 可以看到,这种直接粘贴的方式会导致代码丢失和缩进错乱等情况. 解决 ...
- Mac下复制粘贴的快捷键是什么?随记
刚从window换成Mac OS系统的用户对于一些常用的快捷键一定非常的不习惯,“mac复制粘贴快捷键是什么?”这一简单的问题相信很多刚刚从Windows平台转到Mac平台的用户会问到的问题,因为Ma ...
- cmd下复制粘贴
cmd下复制粘贴的快捷操作方式 工具/原料 系统cmd 步骤/方法 1 如右图,右键命令提示符窗口的标题栏,选择属性. 2 选择“编辑选项”里的“快速编辑模式”,并确定之: 3 在弹出的应用选择提示框 ...
- ubuntu在终端下复制粘贴的2种方法
最近因为项目需要在ubuntu环境下开发(我是用的unbantu虚拟环境),经常要在终端下手动输入很长的文件路径,觉得很麻烦,就谷歌了2种方法如下 你可能会问,什么是ubuntu? 简单来说就是一个基 ...
- Mac下如何用SSH连接远程Linux服务器,centos无法复制粘贴
CentOS 7.1安装完之后默认已经启动了ssh服务我们可以通过以下命令来查看ssh服务是否启动. 3.2查看22端口是否开放 #netstat -tnl 3.3查看ssh服务是否启动 #syste ...
- 【mark】linux 终端命令行下的快捷键(自己已验证所有)
说明: \c + a:表示ctrl+a \a + a:表示alt+a 命令列表: 1 移动: \c + a:将光标移到行首 \c + e:将光标移到行尾 \c + f:将光标向后(右)移动一个字符 \ ...
- VIM系统复制粘贴
1 需求 系统复制粘贴主要是满足下面两个需求. 在多个对象之间复制粘贴 vim窗口与vim窗口之间 外部界面与vim窗口之间 不变复制粘贴.从外部界面复制粘贴到vim窗口时,文本不发生任何变化. 2 ...
随机推荐
- 分享一张oracle scan图
- SQL生成一柱双色球
数据库环境:SQL SERVER 2005 以前用C/JAVA穷举双色球的所有排列,今天想着换成用SQL实现,只生成一柱双色球. 简单说下双色球的规则,双色球由红色球和蓝色球组成,每注投注号码由6个红 ...
- javascript之事件详解2
1.事件对象: 在触发DOM事件的时候都会产生一个对象. 2.事件对象event: (1).type:获取事件类型 (2).target:获取事件目标 (3).stopPropagation():阻止 ...
- nginx利用limit模块设置IP并发防CC攻击
nginx利用limit模块设置IP并发防CC攻击 分类: 系统2013-01-21 09:02 759人阅读 评论(0) 收藏 举报 来源:http://blog.xencdn.net/nginx- ...
- CSS+Javascript的那些框架
CSS CSS 制作框架 SASS http://www.oschina.net/p/sass Blueprint http://www.oschina.net/p/blueprintcss Ela ...
- php引用(&)详解及注意事项
php的引用(就是在变量或者函数.对象等前面加上&符号) 在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容,在内存中存 ...
- Warning: Invalid argument supplied for foreach()
经常对提交过来的数据进行双重循环,但是为空时会报错:Warning: Invalid argument supplied for foreach() 如下解决即可:foreach($data[$i] ...
- C#(asp.net)备份还原mssql数据库代码【转】
采集自互联网,未验证..... 如果我们使用虚拟主机为网站空间,这时如果需要备份和还原msssql数据库是非常麻烦,如果在网站后台管理当中加入对msssql数据库的操纵,可以使我们对数据库的备份和还原 ...
- winfrom拷贝文件
//File.Copy(@"C:\Users\Administrator\Pictures\bg.png", @"g:\images\bg.png", true ...
- Coursera《machine learning》--(2)单变量线性回归(Linear Regression with One Variable)
本笔记为Coursera在线课程<Machine Learning>中的单变量线性回归章节的笔记. 2.1 模型表示 参考视频: 2 - 1 - Model Representation ...