携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情
Vim寄存器
- 未命名寄存器(The Unnamed Register)
当使用y命令复制文本,或使用d、c、s、x等命令删除文本时,文本将自动被放入"" 未命名寄存器。
- 数字寄存器(The Numbered Registers)
"0 包含最近复制的文本,实时刷新。
数字寄存器"1、"2、"3、"4、····"9可以看作是删除历史, 你可以从中找到早先删除的文本。比如使用了三次dd命令,那么这三行文本被分别存放在寄存器1,2,3中,可以通过命令"1P,"2P,"3P将这些文本再粘贴回来。
- 行内删除寄存器(The Small Delete Register)
当删除文本少于一行时,内容将被放入"- 寄存器,除非指定了其它寄存器。
- 命名寄存器(The Named Registers)
当文本被放入以小写字母命名的寄存器(例如 "a )时,该寄存器原有的内容将被覆盖;
而使用以大写字母命名的寄存器(例如 "A )时,将会把文本追加到原有内容之后。
- 只读寄存器(The Read-Only Registers)
只能从只读寄存器中读取并粘贴内容,而不能写入。
"% 包含当前文件名;". 包含最近插入的文本;": 包含最近执行的命令行。
- 轮换缓冲区寄存器(Alternate buffer register)
交替文件寄存器 "# 存储着当前 Vim 窗口(Window)的交替文件。而交替文件(alternate file)是指缓存中的上一个文件,可通过 Ctrl+^ 来切换上一文件与当前文件。
- 表达式寄存器
表达式寄存器 "= 主要用于计算 Vim 脚本的返回值,并插入到文本中。
当我们键入 "= 后光标会移动到命令行,此时我们可以输入任何 Vim 脚本的表达式。
例如 3+2,按下回车并且 p 则会得到 5,这在我们调试 Vim 脚本时非常有用,比如调用一个函数看它是否有正确的返回值。
- 选择和拖拽寄存器
选择和拖放寄存器包括 "*, "+, 和 "~,这三个寄存器的行为是和 GUI 相关的。
"* 和 "+ 在 Mac 和 Windows 中,都是指系统剪切板(clipboard),例如 "*yy 即可复制当前行到剪切板。 以供其他程序中粘贴。其他程序中复制的内容也会被存储到这两个寄存器中。
而在 X11 系统中(绝大多数带有桌面环境的 Linux 发行版),"* 和 "+ 这二者是有区别的:
"*指 X11 中的 PRIMARY 选区,即鼠标选中区域。在桌面系统中可按鼠标中键粘贴。"+指 X11 中的 CLIPBOARD 选区,即系统剪切板。在桌面系统中可按 Ctrl+V 粘贴。
- 黑洞寄存器
黑洞寄存器 "_,所有删除或拷贝到黑洞寄存器的文本将会消失。
这是为了在删除文本的同时不影响任何寄存器的值,"_ 通常用于 Vim 脚本中。
- 搜索寄存器
搜索寄存器 "/ 用于存储上一次搜索的关键词。Vim 中如何进行搜索呢? 在普通模式下按下 / 即进入 search 模式,输入关键字并按下回车即可。
该寄存器是可写的,例如 :let @/ = "harttle" 将会把 "harttle" 写入该寄存器。 下次搜索时不输入搜索词直接回车便会搜索 "harttle"。