Linux--基础知识点--4.1--vim寄存器
1. vim寄存器
1.1 官方帮助手册
:help registers
:help :registers
1.2 寄存器分类
1.无名(unnamed)寄存器
:""
,缓存最后一次操作内容;
2.数字(numbered)寄存器
:"0 ~ "9
,缓存最近操作内容,复制与删除有别, "0寄存器缓存最近一次复制的内容,"1-"9缓存最近9次删除内容
3.行内删除(small delete)寄存器
:"-
,缓存行内删除内容;
4.具名(named)寄存器
:"a ~ "z或"A - "0Z
,指定时可用;
5.只读(read-only)寄存器
:":, "., "%, "#
,分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名;
6.表达式(expression)寄存器
:"=
,只读,用于执行表达式命令;
7.选择及拖拽(selection and drop)寄存器
:"*, "+, "~
,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用;
- “*:当前选择缓冲区,”*yy把当前行的内容放入当前选择缓冲区。
- “+:系统剪贴板。”+yy把当前行的内容放入系统剪贴板。
8.黑洞(black hole)寄存器
:"_
,不缓存操作内容(干净删除);
9.模式寄存器(last search pattern)
:"/
,缓存最近的搜索模式。
1.3 查看寄存器内容
:reg
== :dis
查看所有寄存器内容
:reg 寄存器名
== :dis寄存器名
查看单个寄存器内容 比如 :reg _ :reg * :reg 1 :reg 9 :reg a 等等
数字寄存器
,也是最常用的 从0-9。 如果不指定寄存器的名字,那么删除
的内容,vim默认是存到 1 ,复制内容是存到 0 号寄存器
。 如果继续删除,那么原来 1 的内容就转到 2,类推,当删除超过9的时候, 原先的 8号数字寄存器就转到9, 原先9的数字寄存器内容就会丢失。
实验1:
数字寄存器
先在vim里面输入1-0 10个数字,每个数字一行,接着从0 9 8 7 6 5 4 3 2 依次dd删除,然后:reg查看寄存器,接着yy复制数字1的这行,可以看见"0 寄存器 的值是1
“1 ~ ”9 寄存器依次是 2~0(可以把1~9寄存器看成是一个队列,1为对头,9为对尾,当对满时,从对尾出对。
)
使用p来粘贴,
如果最近一次操作是复制,那么p就会添加 “0 寄存器的内容,如果最近一次操作是删除那么就添加 "1 寄存器的内容 ,如果要粘贴其它数字寄存器的内容,
使用 "?p 来粘贴,比如要粘贴 “2 寄存器里面的,则在vim命令模式下 输入 "2p 就可以取出“2寄存器里面的内容了
其他的寄存器都是通过 "?p 来访问使用的。
具名寄存器(字母寄存器)
具名寄存器(字母寄存器),也就是名称是单个英文字母, "a "b "c ,…,"z , 使用时,在复制或者删除命令 y 或者 d 时,在前面加上字母寄存器的字母名称就可以了, 或者是直接在删除或者复制命令后 加上字母寄存器的字母 比如 :y n
就是复制当前行到 “n 字母寄存器 :5,10y m
复制5到10行内容到 “m 字母寄存器
:pu! n
将字母寄存器 “n的内容粘贴到当前行之前 也可以使用 "mP 效果一样
:p n
粘贴字母寄存器 ”n 的内容到当前行的下一行 也可以使用 "np 效果一样
(命令模式下 :y :d :pu
分别是复制 删除 和粘贴
一般模式下
"寄存器名y “寄存器名d "寄存器名p 代表着复制 删除 和 粘贴 )
实验2:
"ayy
就是复制当前行到 "a 字母寄存器中
"b3yy
复制当前行和下面2行 到 “b 字母寄存器
“ap
粘贴 “a 字母寄存器的内容
“cd2l
向右删除2个字符 并且把内容存到 字母寄存器 “c 中 “cp
粘贴 ”c 字母寄存器里面的内容
”d3dd
删除当前行和下面2行 并且把内容存到 字母寄存器 “d 中
“fdf.
删除当前位置到句号 并且把内容存到 字母寄存器 “f 中
“gd'c
删除当前位置到标记c位置 并且把内容存到 字母寄存器 “g 中
同一个字母的大写和小写表示的是同一个寄存器,但是行为会不同,字母寄存器的名称大写时,当使用大写的寄存器进行复制或者删除文本时,原先的字母寄存器中的内容会被保留,刚删除或复制的内容则附加到原来字母寄存器内容的后面。 字母寄存器只有在指定时才被使用。
无名寄存器 “” 保存最近一次复制或删除的文本。就是p命令默认使用的寄存器。
短删除寄存器 "- (The small delete register)。事实上刚删除的文本并不一定被送到数字寄存器,如果删除的文本不含换行符(不足一整句)则文本被送至这个寄存器。如x、d2h这两条命令删除的文本都会被送到这个寄存器。注意下在这条命令虽然删除了一整行的文本但因不含换行符所以也被送到这个寄存器`0d$‘。
只读寄存器 ": ". "% "# 它们分别用来保存最近一次在命令行窗口使用的命令、最近一次插入的文本、当前编辑的文件名、当前的替代文件名。
表达式寄存器 "=
选择与拖放的寄存器"* "+ "~ 在Windows中这几个寄存器就是剪贴板。在Linux中它们也是剪贴板——但这几个寄存器是有所区别的。
黑洞寄存器 "_ 删除操作会影响现有数字寄存器的内容。前一个数字寄存器的值传给后一个数字寄存器,"9的内容被丢弃,新删除的文本则放入"1。这至少有两个直接的影响,一是"9的内容被丢弃;二是寄存器中文本的位置都发生了变化。而复制操作会改变"0的值。如果你不希望删除或复制的操作影响数字寄存器的话就使用这个寄存器。使用这个寄存器进行删除或复制的内容都会被丢弃——这还可以提高一点速度节省一点空间。
搜索式样寄存器 "/ 保存上一次搜索所使用的式样。注意这也包括了s命令中所使用的搜索式样。
寄存器有26个字母寄存器可以使用;可以使用大写字母将文本附加到已有内容后。如果在你关闭文件之前还没想到这将这些内容贴在哪里也没关系,
用:wviminfo my_viminfo‘命令。下一次编辑时输入
:rviminfo! my_viminfo‘或者在命令行用这个命令运行`gvim -i my_viminfo myfile‘,:reg看寄存器的内容都在的。
2.4 寄存器是个变量——特殊的变量,只要在前面加上一个@号就可以用变量的方式访问寄存器。
所以,变量的操作也同样适用于寄存器。
" 给寄存器赋值
:let @e=“开始<CR>”
:let @E=“结束”
:echo @e
开始
结束
" 将寄存器作为表达式的一部分
:let my_var=@a . @c
" 和
:echo @e+4
" 清空寄存器。
" 注意:不能用unlet清除寄存器。
:let @e=""
1.4 变量类型
Vim 中使用如下的语法对变量进行赋值(创建变量):
:let 变量名 = 数值
变量类型有两种,整数和字符串,在第一次赋值之前都不能使用。变量名除了可使用常规的字母、下划线和数字外,还可以使用几种特殊的前缀:
“b:”——只对当前缓冲区(buffer)有效的变量;
“w:”——只对当前编辑窗口(window)有效的变量。
“g:”——全局变量(在函数中访问全局变量必须使用该前缀,不加前缀的话则认为是函数内的局部变量);
“s:”——变量名只在当前脚本中有效;
“a:”——函数的参数;
“v:”——Vim 内部预定义的特殊变量(参见“:help vim-variable”)。
下面三个前缀用来访问特殊的数值,由于行为和变量较为相似(可以读取和修改),也放在这儿一起讲:
“$”——访问环境变量;
“&”——访问 Vim 选项;
“@”——访问寄存器。
当变量不再使用时,可以使用“unlet 变量名”删除变量。
[参考博客]
Linux--基础知识点--4.1--vim寄存器相关推荐
- 无废话硬核分享:Linux 基础知识点总结很详细,全的很,吐血奉献
Linux 的学习对于一个程序员的重要性是不言而喻的.前端开发相比后端开发,接触 Linux 机会相对较少,因此往往容易忽视它.但是学好它却是程序员必备修养之一. Linux 基础 操作系统 操作系统 ...
- linux基础知识点总结-最实用!(环境搭建,系统分区,常用命令,vim文本)
Linux系统介绍: Linux管理硬盘的能力非常强,所以我们看到的只有一个分区. / 根目录,所有文件都存储在它下面 /bin 存储着系统命令 /dev 设备文件(一切皆文件) /home 用户主目 ...
- Linux基础知识点回顾与服务器部署详细解析
Linux知识点复习 Linux简介 操作系统(Operating System)是应用程序运行的基础支撑环境 操作系统作用是管理和控制计算机系统的硬件与软件资源 lntel x86架构上常见的操作系 ...
- Linux基础工具|文本编辑器Vim的使用
0.前言 您好这里是limou3434的个人博客,感兴趣可以看看我的其他内容. 本次我给您带来的是Linux下Vim文本编辑器的使用,关于vim,您只需要知道一些常用的指令和操作即可,快速上手的秘诀是 ...
- linux 基础知识点杂项记
一.计算机系统的组成 计算机系统可以大体分为两部分,由硬件系统和软件系统组成. 1.1.冯·诺依曼体系概述 有个对计算机贡献很大的人,我们一定要记住他的名字,叫约翰.冯.诺伊曼.他是匈牙利出生 ...
- Linux基础知识点
1. rw-rw-r-表示的权限的意思 文件(包括目录)权限分为三类别,从左至右依次是:文件所属主的权限.文件所属所在用户组的权限和其他用户的权限. 对于目录来说, 读:可以查看目录下的内容: 写:可 ...
- 身家过亿的帝都王子来到1024盛宴-小码农献上linux进阶知识点一篇
文章目录 身家过亿的帝都王子来到1024盛宴-小码农献上linux进阶知识点一篇 联动文章 [身家过亿的帝都公主来到1024盛宴-小码农弟弟献上linux基础知识点一篇](https://blog.c ...
- Linux基础:基础知识
Linux 基础知识点 linux下的目录介绍(CentOS7) 挂载 输入输出错误重定向 文件描述符 管道符 VI编辑器 用户和用户组管理 文件属性和权限修改 软链接&硬链接 文件归档 安装 ...
- Linux基础入门,你学废了嘛?
Linux基础知识点 linux来历 关于Linux的来历,Linux出现于1991年,大家想来也是非常熟悉了.也没有什么特别的,就是一个天才,对于Unix系统的商业化感到非常的angry,然后亲自上 ...
- Linux基础命令与知识点
Linux基础知识与常见命令 作者:卖兔子的萝北 分类:学习笔记 根目录: bin: 可执行文件 dev:硬件设备文件 etc: 系统配置文件 boot:开机启动文件 usr/bin:可执行文件 /v ...
最新文章
- 如何做到微信机器人不封号_微信如何做到一键群发所有群
- mysql建表以及列属性
- DDCTF-2018-writeup(5misc)
- 移动设备真机调试本地程序的Node.js【无需连wifi】
- [翻译]opengl扩展教程2
- Shell 字符串截取
- Android 性能优化提示
- (计算机组成原理)第二章数据的表示和运算-第四节1:算数逻辑单元和电路基本知识以及基本逻辑运算和全加器还有串行、并行加法器
- Java新特性之Nashorn的实例详解
- springboot2.0 配置自定义提示功能依赖
- 数据智能,慧眼识“真”——个推大数据风控产品亮相
- 游戏加加导致cpu降频
- 服务器个别目录下不能新建文件夹,域服务器不能创建sysvol和netlogon共享文件夹...
- linux个人网站制作教程,用LaTeX制作个人简历
- 农民工自学java到找到工作到高薪
- originos和HarmonyOS,OS系统最新资讯
- golang与面向接口编程
- [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2018-16509
- 微信小程序测试版发布流程
- bwa 软件用法简介
热门文章
- 简单制作百度注册页面
- dirver时区_时区问题
- 计算机毕业设计Java校园约拍系统(源码+系统+mysql数据库+Lw文档)
- 批量修改UWP版bilibili下载的视频文件名
- 《Struts2 In Action》摘录
- android 通话录音
- 仙之侠道2玖章青门任务怎么做_仙之侠道Ⅱ攻略_仙之侠道Ⅱ柒章 任务全攻略 新手必看_牛游戏网魔兽地图专区...
- conventional-changelog 参数含义
- MapReduce的C#实现及单元测试(试验)
- C语言基础知识点复习