在前面我参照一些资料简单的配置了一下vim,虽然简陋但基本的编写、编译运行功能都做出来了,现在遇到了第一个问题,因为我写程序做题的过程中复制粘贴是非常普遍的,尤其是全选复制再粘贴到别处这个功能,要是没有的话也就没有使用vim的必要了,所以首先要把这个问题解决
系统剪贴板
- 在不同平台下复制粘贴共享的原理就是使用系统剪贴板,接下来进行简单的配置
- 首先我们要确保 v i m vim vim的编译选项里面有 c l i p b o a r d clipboard clipboard,有几种方式查看
- 第一种是在终端中输入
vim --version | grep clipboard
如果得到的结果是-clipboard
那么说明 v i m vim vim还不支持,如果是+clipboard
那么没问题 - 第二种是在
v
i
m
vim
vim的普通模式下输入
:echo has('clipboard')
如果返回1,没问题;如果返回0,有问题 - 那么有问题如何解决呢,在终端输入
sudo apt install vim-gtk
等待安装结束再次使用vim --version | grep clipboard
查看就会发现负号变成了正号,这时候系统剪贴板就可以正常使用了
接下来比如说我随便写了一块代码如下图
接下来我想把这整个复制粘贴到一个线上 I D E IDE IDE上面,首先我们按 E S C ESC ESC进入命令行模式,接下来我们输入ggVG
,什么意思呢?gg表示移动到最开始的那个字符,V表示块选,初始是选择当前行作为一个块,G意思是移动到当前文件最后一行,这样也就将整个文件都覆盖到了,这时候再输入"+y
就把所有内容都复制到系统剪贴板里面了,再在其他地方 C t r l + v Ctrl+v Ctrl+v即可粘贴,效果如下
- 好!到了现在终于可以使用 v i m vim vim了
- 接下来的内容可能是我们之前没用过的方便的操作
寄存器
无名寄存器
- 当我们在 v i m vim vim中进行删除或者复制等操作的时候操作的是寄存器而不是系统剪贴板,默认使用 d d d删除或者使用 y y y进行复制的时候内容放到“无名寄存器”中
- 这样就可以使得我们用
x
x
x指令删除一个字符之后再把这个字符放在别处,可以方便的改动拼错的单词,具体操作就是先
x
,后p
, x x x意思是删除当前字符, p p p就是粘贴到下一个字符的位置上 - 甚至两行之间的调换,我们知道这个可是很有用的,这种情况也很常见,具体操作方法就是输入
ddp
, d d dd dd意思是删除当前行, p p p意思就是粘贴到下一行,这里先随便提一下毕竟涉及到删除操作了
其他的寄存器
- 这里就不一一说了,具体可以查看官方文档或者直接百度搜索,就举几个例子说明一下
- 每个字母都是一个寄存器,我们可以把某一行的内容复制到字母寄存器中,比如在命令模式下,在某一行输入
"ayy
,就是把这一行内容复制到 a a a寄存器中,注意这时候 v i m vim vim上看着好像没反应,但其实寄存器里已经有复制的内容了,因为我们知道 l i n u x linux linux系统很多都是这样 - 如果我们想查看一下
a
a
a寄存器里有什么东西,可以在
v
i
m
vim
vim的普通模式下使用
:reg a
查看,我们可以使用:reg
指令查看所有有内容的寄存器的内容,就像下图
- 如果我们想把
a
a
a寄存器里面的东西粘贴到
v
i
m
vim
vim上,就可以在普通模式下输入
"ap
就可以了,这里也是输入 p p p之后才有反应
好,这里我需要的的内容差不多结束了,欢迎留言交流