vim寄存器和宏

本文详细介绍了Vim编辑器中的寄存器管理、宏的录制与回放技巧,包括如何避免回放时的问题、递归宏的使用以及跨文件运行宏的方法。重点展示了如何利用这些功能提高编辑效率。
摘要由CSDN通过智能技术生成

1.寄存器

寄存器说明注释
a-z手动复制数据"+寄存器
"无名寄存器""p等效为p
0-9最后10次删除操作的历史记录
%存储当前文件名只读存储器
#上次打开的文件名只读存储器
.最后插入的文本只读存储器
:最后执行的命令只读存储器
*系统的主粘贴板(Linux中为终端的鼠标选择内容)不起作用
+粘贴板选择器(Clipboard selection),用于ctrl+c和ctrl+v不起作用

1.1.寄存器相关命令

命令说明注释
"访问寄存器
ctrl+r允许在插入模式或命令行模式下粘贴某个寄存器的内容
:reg[isters] a b查看寄存器a和b的内容
:reg[isters]列出所有寄存器的内容
A-Z附加寄存器内容

2.宏

2.1.宏的录制和回放

命令说明注释
qa进入宏录制模式,后面接寄存器状态栏显示recording @a
q再次按q录制完成
@a回放宏
@@回放最后一次运行的宏
3@a多次回放宏
#光标移动到文件开头
gg
#使用寄存器a进入宏录制模式
#之后移动和编辑都会在宏模式下记录起来
qa
#搜索"animal.act"
/animal.act
#光标移动到target上
4w
#将target删除,存储到寄存器b中
"bdw
#删除后面的,和空格
xx
#跳转到字符串末尾
f'
#添加,和空格
a,<space><ESC>
#粘贴寄存器b
"bp
#录制完成
q
#回放宏
@a

2.1.1.避免宏回放回到开头重做

  • 宏执行错误会停下来
  • 默认搜索不到光标会回到开头
  • 让搜索到末尾产生错误
:set nowrapscan

2.1.2.先搜索

在录制宏之前先搜索,录制宏后,先跳转到需要的位置,经过确认后再运行回放

@a
@@

2.2.宏的编辑

和寄存器操作相同

#查看每个寄存器内容
:reg
#查看寄存器内容
:echo @a
#打开一个新缓冲区
:new
#将寄存器的内容粘贴出来
"ap
#编辑
#复制到原来的寄存器
_"ay$

2.2.1.特殊字符

在哪里找到参考

字符说明注释
^[ESC键
^Menter键

3.递归的宏

#1.首先确保宏是空的
qaq
#2.按照正常方式录制宏
#3.在录制过程中调用@a

例子

#1.光标位于'bark'
#2.寄存器清空,然后进入宏录制
qbqqb
#3.将'内容存于寄存器c
"cdi'
#4.移动到'dog'
W
#5.dog保存到默认寄存器中
di'
#6.光标左移一个字符
h或b
#7.插入bark
"cp
#8.光标移到行首
_
#9.默认寄存器插入
p
#10.将光标移到下一行首
j_
#11.重新执行宏
#但什么也不会发生,因为寄存器是空的
@b
#12.完成录制
q
#13.递归回放
@b
"cdi'Wdi'h"cp_pj_@b
#对已有的宏附加递归
qB@bq

4.跨文件运行宏

:arg **/*.py
#参数列表用:normal命令执行正常模式下的命令
:argdo execute ":normal @a" | update
  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值