VIM的寄存器
Vim操作的是寄存器而不是系统剪贴来存储缓存。
普通模式下,从某个特定的寄存器中读取文本的通用语法是"x,其中x是寄存器的标志。
默认使用修改c或d删除或y复制的内容都放到了"匿名寄存器"。比如用x删除一个字符放到无名寄存器,然后p粘贴,可以调换字符。插入模式下,取出某个寄存器里面的内容放入到当前缓冲区中的方法为ctrl-r x,其中x是寄存器的标志。
# 查看寄存器里面缓存的内容
:reg [寄存器名称]
:reg # 查看当前所有寄存器
:reg + # 查看剪贴板寄存器
VIM常用寄存器
-
匿名寄存器
"
,Vim
默认的寄存器,复制、删除、修改等操作的内容都会保存在该寄存器中。引用匿名寄存器的方法""
。 -
系统剪切板寄存器
+
,使用系统剪贴板的前缀为"+
。可以将内容拷贝到其他软件中,也可将其他软件里的内容拷贝到Vim
,实现Vim
与其他软件的内容交互。# 检查是否支持系统剪贴板 echo has("clipboard") # 命令模式下,如果输出为1表示支持,0表示不支持 vim --version | grep "clipboard" # shell命令行,出现+clipboard表示支持 # 如果不支持,则安装 sudo apt install vim-gtk # 支持apt管理软件包的系统
-
系统剪切板寄存器使用方法一:复制、删除前先引用剪切板寄存器
- 先用可视模式选中文本,再按
"+
使用系统剪贴板寄存器,之后用复制y
或者剪切d
,实现将内容复制到系统剪贴板再粘贴。 - 先按
"+
,再指定复制的文本(比如yy,2yy,dd,2dd
等命令)将内容放到系统剪切板中,再粘贴。
- 先用可视模式选中文本,再按
-
系统剪切板寄存器使用方法二:修改
~/.vimrc
配置文件,永久设置(推荐使用)# 在vimrc文件里面添加 " VIM复制(删除/剪切)粘贴的命令可以和ctrl-c,ctrl-x,ctrl-v混用 " 将无名寄存器映射都系统剪切板,将复制、删除的内容保存到剪切板寄存器 "set clipboard=unnamed set clipboard=unnamedplus
注:有些用
set clipboard=unnamed
不起作用,需要用set clipboard=unnamedplus
。 -
-
命名寄存器("a-z)
- 命名寄存器使用字母a-z来命名。a-z命名寄存器可以存储复制的、修改的、和被删除的文本。用户需要显示地告诉Vim你要使用的命名寄存器,你拥有完整的控制权。
- 追加文本:使用大写版本的命名寄存器来向原来的命名寄存器中追加文本。
-
文件名寄存器
%
# 将文件名插入到Vim编辑的文件中 :r! echo % # 将文件全路径插入到Vim编辑的文件中 :r! echo %:p
VIM寄存器可参考:
https://gitee.com/zhang_qu/learn-vim_zh_cn_by-smart-way/blob/master/ch08_registers.md
https://www.zhihu.com/question/19863631