vim寄存器是在使用y
、y?
拷贝时,内容的存放位置
在vim普通模式下输入:reg
查看当前vim寄存器列表
:reg
--- Registers ---
"" Uncomment the foll
"0 Uncomment the foll
"1 smartcase
"2 "^J"^J"
"3 " 开启鼠标右键复制^Jif has( 'mouse' )^J set mouse-=a^Jendif^J
"4 " 开启鼠标右键复制^J
"5 ^J
"6 if has( 'mouse' )^J set mouse-=a^Jendif^J
"7 "insecure-registries": ["docker-repo:5000"]^J
"8 # ^J# ^J# ^J#
"9 ^J ^J ^J ^J
"- smartcase
". cccccccccccccc^@ffffffff^@
"% /etc/vim/vimrc
"/ users
""
代表最近一次拷贝内容
"-
代表次最近一次拷贝内容,等于【"1】
"0
代表最近一次(第0次)拷贝内容
"数字
代表前几次拷贝内容
".
代表最近输入的内容
"%
代表当前编辑的文件
"/
代表
"*
代表系统选择缓冲区(xclip -out) — 一般没装vim-gnome,所以在vim中用不了
"+
代表系统剪贴板(xclip -out -sel clipboard) — 一般没装vim-gnome,所以在vim中用不了
若vim寄存器列表里无【”*】或【“+】寄存器,则可能是由于没有安装vim的图形界面所致。Debian/Ubuntu下可以通过安装vim-gnome
解决。
p
粘贴最后一次拷贝的内容
"-p
粘贴次最后一次拷贝的内容
"3p
粘贴第3次拷贝的内容
".p
粘贴最近输入的内容
…
"*p
粘贴选择缓冲区
内容,一般没装vim-gnome,所以在vim中用不了,但是可以在插入模式下使用Shift+Insert
粘贴
"+p
粘贴剪贴板
内容,一般没装vim-gnome,所以在vim中用不了,但是可以在插入模式下使用Shift+Ctrl+v
或鼠标右键粘贴
Vim中,若要复制当前行,普通模式下按 yy 即可,在要粘贴的地方按 p 。这是vim将复制内容保存到了自己的寄存器中的缘故。如果在其他地方执行yy,新的内容将覆盖掉原寄存器中内容。如果想保存原寄存器中内容而同时增加新的内容呢?这时就要在yy前增加标签了。标签以双引号开始,跟着的是标签名称,可以是数字0-9,也可以是26个字母,然后就是复制操作,这样就把复制内容保存到该标签寄存器里。
选择缓冲区
了复制
时(或Ctrl+c、或Shift+Ctrl+c),他就拷贝到系统剪贴板
了粘贴
(或Ctrl+v、或Shift+Ctrl+v),以下验证有问题
:set mouse=a
在普通模式下可以直接使用鼠标选择区域复制到选择缓冲区。但这种情况下不能复制到剪切板。(有些应用程序的Shift+Insert
调用的是剪贴板,并不是选择缓冲区,所以还得要使用mouse=v方式)
:set mouse=v
除了可以像上面一样直接使用鼠标选择区域复制到选择缓冲区以外,还可以在右键菜单中选择“复制”来保存到剪切板里。
另:mouse=v方式可能造成新问题,如果vim显示行号,选择时行号也会一并选择,如果不需要行号的话,在复制前需要先执行set nonu来取消行号显示。
解决vim中鼠标右键无法复制的问题: https://www.cnblogs.com/pengdonglin137/p/3485062.html
待完成