vim: 宏的使用

vim中,当需要执行重复操作的时候,你迫切的需要宏,又方便又快速,而且还不容易出错

录制

normal模式下

\\进入宏录制状态,vim编辑器左下角会显示”记录中”或”recording”
寄存器名是指a、b、c等26个英文字母命名的有名寄存器,或0-9等10个数字寄存器
q[reg] 


q \\在vim宏录制状态下, 结束宏录制

录制的宏记录在寄存器中,假设为a,可以在normal mode下输入@a,执行这个宏,也可以加上执行次数 10@a 执行10次宏

[n]@[reg]

例子:

假设需要在以下文件的每行开头添加“System.out.println(”,行尾添加“);”,可以进行以下操作:

在vim命令行模式下,输入 :qa 开始进行宏录制,再按 0 跳到行首、按下 i 键进入插入模式,再输入 System.out.println( 后按下 esc 键退回到命令行模式,再输入 A 跳转到行尾、输入 ); 后按下 Esc 键回到vim命令行模式,按下 q 停止录制宏

最后,把光标移动到下面一行的任意位置输入 @a 即可

修改宏

  1. 使用命令 “ap 将寄存器a中的命令宏粘贴到当前位置
  2. 编辑这一行的宏内容,编辑结束后用 0 回到行首
  3. 使用命令 “ayy 将当前行的内容复制到寄存器a中,达到修改寄存器a宏内容的目的

let方式修改宏

也可以直接使用let指令,给寄存器赋值,达到设置宏的目的,例如:

:let @a="0iSystem.out.println(^[A);^[" 

将上述的操作命令保存到寄存器a,然后可以用 @a 命令使用刚刚制作的宏

Ref

https://vimjc.com/vim-recording.html



《 “vim: 宏的使用” 》 有 3 条评论

  1. Patient compliance and therapeutics cytotec order online Although plasma volume decreases, this decrease does not reach statistical significance and, even at 8 weeks, does not fully normalize

  2. priligy and viagra Possible side effects include hot flushes, nausea, mood swings and weight gain and it may affect your periods

  3. Her medical history revealed that 3 days before admission, she began experiencing acute bronchitis and was treated with a single dose of azithromycin 500 mg priligy walgreens After 4 weeks there was no difference in hot flash frequency between groups

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825