vim寄存器和宏

目录

  • 1.寄存器
    • 1.1.寄存器相关命令
  • 2.宏
    • 2.1.宏的录制和回放
      • 2.1.1.避免宏回放回到开头重做
      • 2.1.2.先搜索
    • 2.2.宏的编辑
      • 2.2.1.特殊字符
    • 3.递归的宏
    • 4.跨文件运行宏

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows安装ElasticSearch踩坑记

ElasticSearch是一个开源的分布式搜索和分析引擎。它提供实时分布式搜索功能&#xff0c;可以索引和搜索大量的结构化和非结构化数据。Elasticsearch以其速度、可伸缩性和处理复杂查询的能力而闻名。它常用于日志分析、全文搜索、文档搜索和数据分析等领域。使用ElasticSearch的…

稀碎从零算法笔记Day14-LeetCode:同构字符串

题型&#xff1a;字符串、哈希表 链接&#xff1a;205. 同构字符串 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那…

AI相关的实用工具分享

AI实用工具大赏&#xff1a;赋能科研与生活&#xff0c;探索AI的无限可能 前言 在数字化浪潮汹涌而至的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;无论是工作还是生活&#xff0c;都在悄然发生改变。AI的崛起不仅为我们带…

AHU 算法分析 实验四 动态规划

实验四&#xff1a;动态规划 实验目的 • 理解动态规划的基本思想&#xff0c;理解动态规划算法的两个基本要素最 优子结构性质和子问题的重叠性质。 • 熟练掌握典型的动态规划问题。 • 掌握动态规划思想分析问题的一般方法&#xff0c;对较简单的问题能正确 分析&#x…

网络故障基本判断方法

1&#xff09;电脑上使用winR键&#xff0c;打开运行窗口&#xff0c;输入CMD命令&#xff0c;点击回车键 2&#xff09;在弹出的CMD运行窗口中输入ipconfig命令 通过该命令可以查看本机的IP地址&#xff0c;子网掩码和网关等信息。确认电脑中所有网卡配置是否正确。 3&…

llc稳压基本思路2

这套控制思路实际上就是开关电源中常见的反馈系统 大致思路就是&#xff0c;如果由于其他参数波动引起了输出电压偏差&#xff0c;我们可以直接监测这个输出电压&#xff0c;然后根据输出电压与目标电压值的偏差信号传输给芯片&#xff0c;然后芯片来改变频率&#xff0c;从而改…

人工智能研究的各个学派

于对智能产生根源的理解不同形成了三大学派。 一、符号主义 符号主义&#xff08;Symbolism&#xff09;是人工智能研究中的一个重要学派&#xff0c;也被称为逻辑主义&#xff08;Logicism&#xff09;、心理学派&#xff08;Psychlogism&#xff09;或计算机学派&#xff08…

Flink StreamTask启动和执行源码分析

文章目录 前言StreamTask 部署启动Task 线程启动StreamTask 初始化StreamTask 执行 前言 Flink的StreamTask的启动和执行是一个复杂的过程&#xff0c;涉及多个关键步骤。以下是StreamTask启动和执行的主要流程&#xff1a; 初始化&#xff1a;StreamTask的初始化阶段涉及多个…

蓝桥杯2023年-接龙数列(dp)

题目描述 对于一个长度为 K 的整数数列&#xff1a;A1, A2, . . . , AK&#xff0c;我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字 (2 ≤ i ≤ K)。 例如 12, 23, 35, 56, 61, 11 是接龙数列&#xff1b;12, 23, 34, 56 不是接龙数列&#xff0c;因为 …

前端学习之行内和块级标签

行内标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>span</title> </head> <body><!-- 行内标签特点&#xff1a;1、不换行,一行可以放多个2、默认宽度内容撑开代表&#…

[2023年]-hadoop面试真题(一)

&#xff08;北京&#xff09;HDFS底层存储原理? (北京) HDFS读写数据流程? (北京) HDFS如何管理元数据或者checkpoint的理解 ? (北京) HDFS常用命令 ? (北京) hadoop调优 (北京) HDFS扩容原理 (北京) HDFS有哪些进程,分别是什么? (北京) HDFS中大量小文件对…

Go实现日志2——支持结构化和hook

代码保存在&#xff1a;https://github.com/liwook/Go-projects/tree/main/log/sulogV2​​​​​​​ 1.日志结构化 日志记录的事件以结构化格式(键值对&#xff0c;或通常是 JSON)表示&#xff0c;随后可以通过编程方式对其进行解析&#xff0c;便于对日志进行监控、警报、…

Googlenet网络架构

原文链接&#xff1a;[1409.4842v1] Going Deeper with Convolutions (arxiv.org) 图源&#xff1a;深入解读GoogLeNet网络结构&#xff08;附代码实现&#xff09;-CSDN博客 表截自原文 以下&#x1f4d2;来自博客深入解读GoogLeNet网络结构&#xff08;附代码实现&#xff0…

【顶刊|修正】多区域综合能源系统热网建模及系统运行优化【复现+延伸】

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序复现《多区域综合能源系统热网建模及系统运行优化》模型并进一步延伸&#xff0c;基于传热学的基本原理建立了区域热网能量传输通用模型&#xff0c;对热网热损方程线性化实现热网能量流建模&#xff0…

使用docker-compose编排ruoyi项目

目录 一、开始部署 1.拉取ruoyi代码 2.拉取node镜像 3.拉取maven镜像 4.在/root/ruoyi/java下写一个Dockerfile用于后端Java环境 5.拉取MySQL&#xff0c;Redis&#xff0c;Nginx镜像 6.在/root/java目录下写一个nginx.conf 7.在/root/ruoyi目录下写docker-compose.yml文…

Idea导入Maven项目

方法一&#xff1a;使用Maven面板 方法二&#xff1a;在项目结构中设置&#xff0c;在最后一步中选择pom.xml。

js【详解】bind()、call()、apply()( 含手写 bind,手写 call,手写 apply )

必备知识点&#xff1a;js 【详解】函数中的 this 指向_js function this-CSDN博客 https://blog.csdn.net/weixin_41192489/article/details/123093256 bind、call、apply 的相同点 都是Function原型上的方法用途都是改变 this 的指向第一个参数都是新的 this bind、call、app…

前端学习之列表标签

目录 有序列表 结果 无序标签 结果 数据标签 结果 有序列表 &#xff08;注&#xff1a;注释是解释&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </…

SpringBoot实现 PDF 添加水印

方案一&#xff1a;使用 Apache PDFBox 库 ①、依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version> </dependency>②、添加水印 public class PdfoxWaterma…

蓝桥集训之日期差值

蓝桥集训之日期差值 模版&#xff1a;判断闰年 总天数 月份天数 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int months[]{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int is_leap(int y){if(y % 10…