1800_vim的宏录制功能尝试

news2025/1/12 7:49:44

         全部学习信息汇总: GreyZhang/editors_skills: Summary for some common editor skills I used. (github.com)

         最近5年多来,我emacs的编辑器用的还是比较多的。我的配置基本上是一个spacemacs,然后根据自己的需求增加了一丁点儿的其他配置。而且,这个spacemacs的配置版本也不是很高,我用了几年下来如今甚至不知道现在的spacemacs已经到了什么版本。

         沿袭着网络上网友的教程,我的spacemacs使用的也是evil的模式。主要的操作是vim的各种操作模式。时间久了,基本上也形成了我的一套比较顺手的编辑操作方式。不过,相比那些曾经花了大量时间死磕vim或者单纯的emacs的人来说,我的很多基础技巧并不是很流畅。比如,我看过很多人用过宏录制的功能,不仅仅是vim甚至emacs上我也见到过。但是,使用这样的工具这么多年了我还是不熟悉这样的操作,甚至都没有去做过任何尝试。可能,之前我的一些简单的操作基本上满足了我自己当前的诉求了吧。

         最近看到别人用vim编辑文件的时候使用了宏录制的功能,一下子被吸引到。主要是他所用的一套操作比较复杂,属于比较复杂的操作不断循环。我之前也会借用一些循环的操作,但是我的操作基本上都是简单的。这次,就找一个可能也算不上有实际意义的例子来总结下这种略复杂的操作如何通过宏录制来实现。

         我创建了一个org文件,里面这种条目写了100条。接下来,我的处理目标是什么呢?把每一条改成TODO之后,再切换成DONE。这样,这个条目会留下DONE的标识,同时还会留下一个时间戳。

         启动宏录制的方式是在命令normal模式下按下q,之后再按一个字母按键,这样对应的宏定义就会被绑定到对应的按键上。我这里先把光标一动都按第一行,然后按下qa,之后按两次t,这样第一行就处理完了。为了能够保证动作可以重复,我继续按jj往下走2行。这样,一次完整的操作接完成了。再次按下q之后就可以完成这一次的宏录制。

         接下来,实现剩下的99行的操作只需要按下99@a,其中99代表了这个宏动作执行了99次。而@a是对绑定到a按键的宏的引用。

         查看最后的几行的信息可以看到这样的效果,看得出来这个宏已经奏效了。之前类似的处理,的确是不是很好操作。曾经有的插件不同版本中功能不同,在可视模式下曾经可以支持这样的类似操作,但是后来我尝试的时候发现有的环境不奏效。

         网络上有很多关于vim宏录制功能的负面看法,说这个功能比较鸡肋。我觉得很多时候,一个功能的存在可能针对的不见得是我们看到的应用场景,因此我倒是觉得这种功能的存在还是尤其必要性的。

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

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

相关文章

数据结构基本概念-Java常用算法

数据结构基本概念-Java常用算法 1、数据结构基本概念2、数据逻辑结构3、算法时间复杂度 1、数据结构基本概念 数据(Data):数据是信息的载体,其能够被计算机识别、存储和加工处理,是计算机程序加工的“原材料”。数据元…

C++stackqueue

目录 一、stack 1.1 简要介绍 1.2 小试身手 1.3 模拟实现 二、queue 2.1 简要介绍 2.2 小试身手 2.3 模拟实现 三、deque 3.1 简要介绍 3.2 分析底层 四、priority_queue 4.1 简要介绍 4.2 小试身手 4.3 模拟实现 五、仿函数/函数对象 5.1 简要介绍 一…

全网最全Python系列教程(非常详细)---Python中文乱码讲解(学Python入门必收藏)

🧡🧡🧡这篇是关于Python中为什么会出现中文乱码的讲解,欢迎点赞和收藏,你点赞和收藏是我更新的动力🧡🧡🧡 在解释Python中中文乱码的问题之前,我们先对计算机中几个基本…

物联网AI MicroPython传感器学习 之 手指侦测心跳传感器

学物联网,来万物简单IoT物联网!! 一、产品简介 手指侦测心跳传感器是通过LED和光电晶体管监测手指血压脉冲,来判断人的心脏跳动。其结构简单成本低廉,只能是做一些实验和学习相关的知识(没有医疗实用价值&…

C++11新特性(语法糖,新容器)

距离C11版本发布已经过去那么多年了,为什么还称为新特性呢?因为笔者前面探讨的内容,除了auto,范围for这些常用的,基本上是用着C98的内容,虽说C11已经发布很多年,却是目前被使用最广泛的版本。因…

string类的模拟实现(万字讲解超详细)

目录 前言 1.命名空间的使用 2.string的成员变量 3.构造函数 4.析构函数 5.拷贝构造 5.1 swap交换函数的实现 6.赋值运算符重载 7.迭代器部分 8.数据容量控制 8.1 size和capacity 8.2 empty 9.数据修改部分 9.1 push_back 9.2 append添加字符串 9.3 运算符重载…

Nacos与Eureka的区别

大家好我是苏麟今天说一说Nacos与Eureka的区别. Nacos Nacos的服务实例分为两种l类型: 临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。非临时实例:如果实例宕机,不会从服务列表剔除&…

Python安装指南:安装Python、配置Python环境(附安装包)

1. 选择正确的版本,下载安装包 根据你的实际需要选择Python发行版本。 值得注意的是,编程语言包并不是越新越好的,不同版本的Python之间可能会产生兼容性问题。 如果你不确定你的项目需要哪个版本,请查阅您可能需要使用到的插件的…

输入电压转化为电流性 5~20mA方案

输入电压转化为电流性 5~20mA方案 方案一方案二方案三 方案一 XTR111是一款精密的电压-电流转换器是最广泛应用之一。原因有二:一是线性度非常好、二是价格便宜。总结成一点,就是性价比高。 典型电路 最终电路 Z1二极管处输出电流表达式:…

(c语言进阶)数据存储——浮点型存储

一.常见的浮点数 二.浮点数存储规则 1.float存储规定 2.double存储规定 3.M的存储规则 4.E的存储规则 5.指数E从内存中取出的三种情况 (1)E不全为0或不全为1 (2)E全为0 (3)E全为1 三.举例 1.经典…

【高级rabbitmq】

文章目录 1. 消息丢失问题1.1 发送者消息丢失1.2 MQ消息丢失1.3 消费者消息丢失1.3.1 消费失败重试机制 总结 2. 死信交换机2.1 TTL 3. 惰性队列3.1 总结: 4. MQ集群 消息队列在使用过程中,面临着很多实际问题需要思考: 1. 消息丢失问题 1.1…

Multi Label Classification with Missing Labels(MLML)的几种loss设计

多标签学习这个方向问题比较多,可以参考多标签学习的新趋势(2021 Survey TPAMI) 和 部分标签学习和缺失标签学习到底什么异同? 这两篇偏综述性质的解释。本文重点解释下面几个重点问题: Multi Label Classification w…

山西电力市场日前价格预测【2023-10-06】

日前价格预测 预测说明: 如上图所示,预测明日(2023-10-06)山西电力市场全天平均日前电价为425.53元/MWh。其中,最高日前电价为777.87元/MWh,预计出现在18: 45。最低日前电价为328.89元/MWh,预计…

ICCV 2023 获奖论文公布,扩散模型、分割一切、跟踪一切摘得桂冠

昨天计算机视觉三大顶级会议之一的ICCV 2023在法国巴黎正式“开奖”了!今年共有两篇论文获得最佳论文奖,大名鼎鼎的“分割一切”荣获最佳论文提名。 ICCV今年共收录了2160篇论文,从今年的录用论文的主题领域来看,3D视觉、图像视频…

大促节奏:速卖通黑五接力双十一,如何打造产品权重瓜分活动流量

双十一和黑五作为一种独特的消费文化现象,已经逐渐成为了消费领域中的一块“金字招牌”。无论是消费者还是商家,都非常期待这一天的到来,因为它不仅代表着购物的欲望和刺激,更重要的是,双十一和黑五已经成为了一种全新…

在springboot项目中整合Druid

或 1.导入maven坐标 <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.19</version> </dependency>2.在application.properties中配置连接池 spring:datasource:d…

微信管理系统

在这个全民微信的时代&#xff0c;微信已成为生活和工作中不可缺少的工具&#xff0c;为了方便&#xff0c;大部分人都不会只有一个微信&#xff0c;很多企业老板和创业者都已经开始用微信管理系统来提升自身的业务效率和客户满意度。 微信管理系统适用哪些行业呢&#xff1f; …

SSM - Springboot - MyBatis-Plus 全栈体系(二十)

第四章 SpringMVC 二、SpringMVC 接收数据 3. 接收 Cookie 数据 可以使用 CookieValue 注释将 HTTP Cookie 的值绑定到控制器中的方法参数。 考虑使用以下 cookie 的请求&#xff1a; JSESSIONID415A4AC178C59DACE0B2C9CA727CDD84下面的示例演示如何获取 cookie 值&#x…

小谈设计模式(19)—备忘录模式

小谈设计模式&#xff08;19&#xff09;—备忘录模式 专栏介绍专栏地址专栏介绍 备忘录模式主要角色发起人&#xff08;Originator&#xff09;备忘录&#xff08;Memento&#xff09;管理者&#xff08;Caretaker&#xff09; 应用场景结构实现步骤Java程序实现首先&#xff…

如何使用 Media.io 生成不同年龄的照片

Media.io 是一个在线图片编辑器&#xff0c;提供多种功能&#xff0c;包括照片滤镜、图像裁剪和图像转换。其中&#xff0c;Media.io 的 AI 年龄转换功能可以根据上传的照片&#xff0c;生成不同年龄的照片。 使用 Media.io 生成不同年龄的照片 要使用 Media.io 生成不同年龄…