关于Vim的一些小备忘

1. vim怎么和系统剪切板进行复制粘贴

参考来源:
vim 如何与外界粘贴复制

vim 里面粘贴复制实际上是在vim 缓冲区 存取数据

而系统的ctry+c ctry+v 是与系统剪贴板之间的交互

我也不知道我这样描述准不准确,反正大概就是这个意思:vim 粘贴复制和系统粘贴复制操作的不是同一个东西,所以系统和vim 之间不是那么容易直接使用的

但是,这个问题还是可以解决的

  1. 用vim 打开一个文件,然后执行命令:reg 查看是否有 + 或者 × 号 或者执行:version 命令 查看是否有+clipboard用vim 打开一个文件,然后执行命令:reg 查看是否有 + 或者 × 号 ;
    或者执行命令查看是否有+clipboard:
vim --version | gerp "clipboard"

如果存在:

则可以使用 “+y 将vim 里面的内容复制到系统剪贴板或者 +p 将系统剪贴板里面的内容复制到vim 里面
如果不存在:
则需要安装vim-gnome, sudo apt-get install vim-gnome
然后就可以用以上命令粘贴复制

  1. 可以在/etc/vim/.vimrc里面设置 clipboard=unnamedplus 这样就可以直接使用 y p命令直接粘贴复制了;
  2. (2019-03-04更新)在系统剪贴板复制后,在vim中可以使用Shift+Insert组合键来实现粘贴,嘿嘿嘿,竟然是在用shell跑impala脚本时学会的。
2. 整行移动

想在vim里实现类似eclipse中Alt+up/down的功能,即整行上下移动。
我用到的命令为

:[start,end] move target_line

将start开始的范围内行,也可以是单独一行,移动到目标行之后,对,是之后。要是不清楚行数的,可以用:set nu来显示函数。之后用:set nonu就可以取消。

3. 批量替换

这个以前看到过,但是那天面试问我的时候,真没想起来,在此记录一下:

[addr] s / 源字符串 / 目标字符串 / [option]

s 代表替换的意思


[addr]是指要替换的范围:

  • “start,end”行数范围
  • “. ,$”从当前行到文件尾
  • % 全文,与“1,$”效果一样

[option]是指替换的方式:

  • 默认每行的一个匹配串
  • g全局替换
  • c 需要确认替换

例子:将全文中的that 换为this%s/that/this/g
将句尾的child换为children%s/child\(,.;!?\)/children\1/g
将多个空格换成一个空格%s/ */ /g
从上面也可以看出来,转义字符要用"\'转义。可以和正则表达式一样的匹配。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值