在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 ...
随机推荐
- Play - js/css concatenation & minify
1. Css We’ll use LESS CSS, all less sources are defined in the app/assets, and they will be compiled ...
- 带参数的查询防止SQL注入攻击
把单引号替换成两个单引号,虽然能起到一定的防止SQL注入攻击的作用,但是更为有效的办法是把要拼接的内容做成“参数” SQLCommand支持带参数的查询,也就是说,可以在查询语句中指定参数: 参数的设 ...
- #define和#undefine的用法
#undef将保持已定义状态且在 作用域内,直到程序结束或者使用#undef 指令取消定义. 预处理器 在此程序中,我们将取消在先前程序中对预处理器的定义. 1 2 3 4 5 6 7 8 9 10 ...
- SQL语句like子句中的转义符 [转载]
如果想在SQL LIKE里查询有下划线'_'或是'%'等值的记录,直接写成like 'XXX_XX',则会把'_'当成是like的通配符.SQL里提供了 escape子句来处理这种情况,escape可 ...
- jquery validation插件
jQuery Validate验证框架详解 jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导 ...
- Python 统计代码行
正在学习 Python, 做了个统计代码行的功能, 参考了网上很多前辈的帖子,添加了感觉还是比较实用的功能, 只是windows下测试了,而且代码文件编码形式是 utf-8的. 如果使用其它编码形式的 ...
- python入门笔记第一天
查询acsii命令 ord(‘A’) 导入模块python执行系统命令显示文件.查找文件方法1import osa = os.popen('目标').read()a 解释output = os.pop ...
- TaskMgr C#技术拾遗
1. DataGridView和ContextMenuStrip的绑定是发生在DataGridView的CellMouseClick事件,在事件中指定右键菜单弹出: 2. DataGridView的列 ...
- Noah的学习笔记之Python篇:装饰器
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- php100视频教程解压密码
php100-75-vip.rar 解压密码:php100-18293-2938-2839-348-#php100-76_u.rar 解压密码:php100-18634-6254-1001-283-# ...