位置: 编程技术 - 正文

Vim 复制粘贴探秘(vim如何复制粘贴)

编辑:rootadmin
每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几十年,还没有完全掌握vim的功能,这也说明了vim的强大。而这样何尝不是一件好事呢,只要有的学习,就有的提高。 最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置: :set noai nosi取消了自动缩进和智能缩进,这样粘贴就不会错行了。但在有的vim中不行,还是排版错乱。 后来发现了更好用的设置: :set paste进入paste模式以后,可以在插入模式下粘贴内容,不会有任何变形。这个真是灰常好用,情不自禁看了一下帮助,发现它做了这么多事: textwidth设置为0 wrapmargin设置为0 set noai set nosi softtabstop设置为0 revins重置 ruler重置 showmatch重置 formatoptions使用空值 下面的选项值不变,但却被禁用: lisp indentexpr cindent 怪不得之前只设置noai和nosi不行,原来与这么多因素有关! 但这样还是比较麻烦的,每次要粘贴的话,先set paste,然后粘贴,然后再set nopaste。有没有更方便的呢?你可能想到了,使用键盘映射呀,对。我们可以这样设置:: :map <F> :set paste<CR> :map <F> :set nopaste<CR>这样在粘贴前按F键启动paste模式,粘贴后按F取消paste模式即可。其实,paste有一个切换paste开关的选项,这就是pastetoggle。通过它可以绑定快捷键来激活/取消 paste模式。比如:: :set pastetoggle=<F>这样减少了一个快捷键的占用,使用起来也更方便一些。 但,这是最方便的吗?Vimer们对高效的追求永无止境。还有其他更好地方法吗? 你可能想到了,vim寄存器。对,使用vim寄存器 “+p 粘贴即可。根本不用考虑是否自动缩进,是否paste模式,直接原文传递!: "+p要说vim寄存器,就要从vim文件间的复制粘贴说起。 Vim中,若要复制当前行,普通模式下按 yy 即可,在要粘贴的地方按 p 。这是vim将复制内容保存到了自己的寄存器中的缘故。如果在其他地方执行yy,新的内容将覆盖掉原寄存器中内容。如果想保存原寄存器中内容而同时增加新的内容呢?这时就要在yy前增加标签了。标签以双引号开始,跟着的是标签名称,可以是数字0-9,也可以是个字母,然后就是复制操作,这样就把复制内容保存到该标签寄存器里。通过下面命令显示所有寄存器内容:: :reg其中注意两个特殊的寄存器:”* 和 “+。这两个寄存器是和系统相通的,前者关联系统选择缓冲区,后者关联系统剪切板。通过它们可以和其他程序进行数据交换。 备注: 若寄存器列表里无”* 或 “+ 寄存器,则可能是由于没有安装vim的图形界面所致。Debian/Ubuntu下可以通过安装vim-gnome解决。 $ sudo apt-get install vim-gnome选择缓冲区和系统剪切板啥子区别?让我们继续研究。 选择缓冲区和剪切板 不同于Windows,Linux系统里存在两个剪切板:一个叫做选择缓冲区(X selection buffer),另一个才是剪切板(clipboard)。 选择缓冲区是实时的,当使用鼠标或键盘选择内容时,内容已经存在于选择缓冲区了,这或许就是选择缓冲区的由来吧。 使用下面的命令查看选择缓冲区的内容:: $ xclip -out如果没有xclip命令,Debian/Ubuntu下可以通过如下命令安装:: $ sudo apt-get install xclip可以使用鼠标中键或键入Shift+Insert来粘贴选择缓冲区的内容。但对于有些GUI程序,比如gedit,只能通过鼠标中键调用选择缓冲区的内容,使用Shift+Insert的话,调用的是剪切板的内容。 剪切板和Windows的剪切板类似,在选择文字内容后,执行Ctrl + c或在菜单里选择‘复制’的话,这时内容才存放到剪切板里。 使用下面的命令查看剪切板的内容:: $ xclip -out -sel clipboard而使用剪切板的内容,则是Ctrl+v。 但在有些情况下,比如gnome-terminal,不能直接使用Ctrl+c,Ctrl+v,这时就要用Shift+Ctrl+c,Shift+Ctrl+v代替。 原格式粘贴 好了,了解了选择缓冲区和剪切板,下面就是实现保留格式粘贴的完美解决方案: 方案一: 选择文本内容 vim普通模式下按 “*p 将选择缓冲区中内容粘贴进来 方案二: 复制文件内容 vim普通模式下按 “+ p 将剪切板内容粘贴进来 这时,如果要复制的内容也是vim编辑器中的内容,那么如何复制才更方便呢? vim中的复制 vim有一个可视模式(Visual Mode),在此模式下可以选择区域。可以在普通模式下键入v进入可视模式,也可以个性化一点,键入V进入行可视模式,或者键入Ctrl+v进入列可视模式。这时移动光标就可以选择内容了。注意这时被选内容已经实时保存于选择缓冲区了,当然你也可以键入”+y将此内容也保存到剪切板里,或者”ay将内容保存到标签为a的寄存器中。但要知道,只有前两个中的内容可以在其他程序中使用,而a寄存器中的内容只能在该vim编辑器内使用。 也可以通过鼠标来复制。这里首先要打开鼠标模式。: :set mouse=a这样在普通模式下可以直接使用鼠标选择区域复制到选择缓冲区。但这种情况下不能复制到剪切板。 若要使用鼠标复制内容到剪切板,则需要做如下设置:: :set mouse=v这种情况下,除了可以像上面一样直接使用鼠标选择区域复制到选择缓冲区以外,还可以在右键菜单中选择“复制”来保存到剪切板里。但新问题又出来了。若显示行号,也会将行号一并选择。你会想到,这好办呀,如果不需要行号的话,在复制前,先执行set nonu来取消行号显示呗。 其实没必要这样,如果不需要复制行号的话,用在可视模式下用键盘来选择不就可以吗? 并且,从上面的讨论,我们不难得出,使用选择缓冲区比使用剪切板要方便的多,可以节省很多步骤。 所以,最终我们得到了vim文件间复制粘贴的完美方案,文件传输的中转使用选择缓冲区。 vim文件间复制粘贴完美方案 在~/.vimrc中增加如下一行:: set mouse=v复制内容到选择缓冲区。 带行号时,使用鼠标选择内容区域。 不要行号,使用 “*yny 复制n行或可视模式下选择。 将选择缓冲区中内容粘贴到vim文件:普通模式下按 “*p 。 -------------------------------------------------------------------------------- 补充: 设置vim中默认使用选择缓冲区寄存器 “*: set clipboard = unnamed则可以直接通过y,p和系统选择缓冲区进行数据交换。

推荐整理分享Vim 复制粘贴探秘(vim如何复制粘贴),希望有所帮助,仅作参考,欢迎阅读内容。

Vim 复制粘贴探秘(vim如何复制粘贴)

文章相关热门搜索词:vim的复制粘贴命令,vim如何复制粘贴,vim如何复制粘贴,vim复制粘贴快捷键,vim复制黏贴,vim复制粘贴到剪贴板,vim复制黏贴,vim复制黏贴,内容如对您有帮助,希望把文章链接给更多的朋友!

通过rpm包安装、配置及卸载mysql的详细过程 以MySQL-server-4.0.-0.i.rpm为例,放在/data目录下cd/datarpm-ivhMySQL-server-4.0.-0.i.rpm安装完成后在/usr/share/mysql目录中会有一个mysql的启动脚本mysql.server及示

Linux 下二进制源码包安装mysql 详细过程 安装之前先把二进制源码准备好,可以从搜狐镜像下载:

Linux下取得UUID的方法分享 HP和RedHat上可以使用uuidgen来生成,solaris上命令:makeuuid如何通过C++编程取得UUID?1.安装libuuid库,libuuid.so.1包涵在e2fsprogs里,本人的系统为RedHat7.3,下载

标签: vim如何复制粘贴

本文链接地址:https://www.jiuchutong.com/biancheng/364844.html 转载请保留说明!

上一篇:linux下编译php支持jpeg的笔记(linux编译安装php扩展)

下一篇:通过rpm包安装、配置及卸载mysql的详细过程(rpm软件安装命令)

  • 装卸费属于什么费用
  • 企业转出多交增值税吗
  • 如何在金蝶算季度利润表发生额
  • 财务报表申报有税额吗
  • 税务登记财务负责人可以是法人吗
  • 纳税人性质怎么改
  • 通行费电子发票可以抵扣吗
  • 暂估工资成本
  • 退休后兼职收入需要交税吗
  • 返利平台可信吗
  • 小规模纳税人改为一般纳税人需要什么材料
  • 存货跌价准备转销会影响当期损益吗
  • 库存商品检验合格标准
  • 同一控制吸收合并会计处理
  • 股份支付为什么计入资本公积?
  • 股东垫付工资如何做账
  • 税负的含义
  • 国税开增值税专票怎么开
  • 专票打印的时候密码区压线了能用吗
  • 没领税票会产生税吗
  • 金税盘全额抵扣分录怎么做
  • 个人所得税申请免税条件
  • 技术合同指什么
  • 苹果11屏幕尺寸长宽
  • php数组函数大全
  • thinkphp3.2 layui
  • 税收保全有哪些
  • 财务报表分析方法有哪些?各有什么优缺点?
  • ibm-web-ext.xmi
  • 帝国cms标签调用大全
  • 盈余公积转增资本会计科目
  • 出租不动产预缴增值税计算公式
  • 现金支付医保报销
  • vite配置详解
  • 我找到了这个
  • 从上魏斯巴赫山地列车的车站向外看,德国图林根 (© golero/iStock/Getty Images Plus)
  • 债券到期收回本金和利息的会计分录
  • 税控抵税
  • 建行E信通贴现需要发票吗
  • pytorch例程
  • JavaScript ,18种常用数组方法,快来看看你会吗?
  • 蓝桥杯b组2020
  • php如何实现多进程
  • 营改增小规模纳税人可以进项税额扣除对吗
  • 应付账款可以用预收账款代替嘛
  • 营改增之后增值税怎么算
  • python中import语句
  • 在私立医院就诊能报销吗
  • 来料加工分录
  • 预付账款是什么意思大白话
  • 临时工工资无发票可以扣除吗
  • 融资租赁租金利息怎么算
  • 确定施工程序怎么写
  • 年度汇算清缴缴税的会计分录
  • 房屋租赁合同印花税谁交
  • 技术开发技术服务属于什么行业
  • 分期付款购无形资产怎么入账?
  • 电子发票是否是原件发票
  • 农业机耕开发票税收分类编码是什么?
  • 从会计角度看会计刺客
  • 来料加工企业的辅助材料自购怎开销售发票
  • 商业银行的存款有哪些种类
  • sql2000删除
  • mysql数据库无法连接到服务器怎么办
  • 如何恢复win8系统
  • 虚拟机vmware下载教程
  • mac死机按什么都没用
  • win10任务栏位置怎么改变
  • win8.1快速启动
  • Unity3d_用PlayerPrefs保存和读取数组
  • glUnmapBuffer
  • javascript中匿名函数
  • perl 匹配不区分大小写
  • [置顶]bilinovel
  • js触发select下拉列表
  • 重庆市委常委是副部级干部吗?
  • 深圳12366怎么转人工
  • 大连税务稽查局魏禾简历
  • 浙江省社保网报系统
  • 上海42年工龄退休有没有补充养老金呢
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设