1800_vim的宏录制功能尝试

         全部学习信息汇总: 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.hqwc.cn/news/125250.html

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

相关文章

1024 科学计数法

一.问题: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [-][1-9].[0-9]E[-][0-9],即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确…

华为云云耀云服务器L实例评测|Uniapp开发部署茶叶商城小程序、H5

1、华为云云耀云服务器L实例评测|Uniapp开发茶叶商城小程序、H5 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格,满足您对成本、性能及技术创新的诉求。云耀云服务器L实例提供丰富严选的应用镜像…

lv7 嵌入式开发-网络编程开发 10 TCP协议是如何实现可靠传输的

目录 1 TCP 最主要的特点 1.1 特点 1.2 面向流的概念 1.3 Socket 有多种不同的意思 2 TCP是如何实现可靠传输的? 3 TCP报文段的首部格式 4 作业 1 TCP 最主要的特点 TCP 是面向连接的运输层协议,在无连接的、不可靠的 IP 网络服务基础之上提供可…

微信管理系统

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

MyBatisPlus(十一)判空查询:in

说明 判空查询&#xff0c;对应SQL语句中的 in 语句&#xff0c;查询参数包含在入参列表之内的数据。 in Testvoid inNonEmptyList() {// 非空列表&#xff0c;作为参数List<Integer> ages Stream.of(18, 20, 22).collect(Collectors.toList());in(ages);}Testvoid in…

python修改unittestreport中的用例条数

背景: 自动化框架中使用yaml文件作为数据配置&#xff0c;使用ddt作为数据驱动来运行测试用例&#xff0c;由于测试用例都是基于场景去编写&#xff0c;目前都是一个测试类算是一条测试用例&#xff0c;但基于测试报告里面一个类运行的测试方法有多个&#xff0c;因此统计的测试…

堆--数组中第K大元素

如果对于堆不是太认识&#xff0c;请点击&#xff1a;堆的初步认识-CSDN博客 解题思路&#xff1a; /*** <h3>求数组中第 K 大的元素</h3>* <p>* 解体思路* <ol>* 1.向小顶堆放入前k个元素* 2.剩余元素* 若 < 堆顶元素, 则略过* …

Netty 4.1.98.Final 发布

Netty 4.1.98 稳定版已发布。Netty 是一个异步事件驱动的网络应用框架&#xff0c;主要用于可维护的高性能协议服务器和客户端的快速开发。 此版本还原了上一版本中所做的更改&#xff0c;这些更改导致 HTTP header 验证比所需的更严格 (#13615)。除此之外&#xff0c;当使用 n…

MySQL到TiDB:Hive Metastore横向扩展之路

作者&#xff1a;vivo 互联网大数据团队 - Wang Zhiwen 本文介绍了vivo在大数据元数据服务横向扩展道路上的探索历程&#xff0c;由实际面临的问题出发&#xff0c;对当前主流的横向扩展方案进行了调研及对比测试&#xff0c;通过多方面对比数据择优选择TiDB方案。其次分享了整…

Win11 安装 Vim

安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Ru7HhTSotz9mteHug-Yhpw?pwd6666 提取码&#xff1a;6666 双击安装包&#xff0c;一直下一步。 配置环境变量&#xff1a; 先配置系统变量中的path&#xff1a; 接着配置用户变量&#xff1a; 在 cmd 中输入…

安装cad显示找不到msvcp140.dll怎么解决?靠谱的msvcp140.dll丢失的解决方法分享

在安装 CAD 软件时&#xff0c;出现找不到 msvcp140.dll 的困扰&#xff0c;让许多用户感到十分沮丧。msvcp140.dll 是 Visual C Redistributable for Visual Studio 2015 的运行库文件&#xff0c;对于 CAD 软件的正常运行至关重要。因此&#xff0c;解决这个问题是当务之急。…

【Python入门】元组与字符串

文章目录 前言一、元组&#xff08;Tuples&#xff09;1.1 元组的定义1.2 元组的特性&#xff1a;1.3 示例 1: 创建和访问元组1.4 示例 2: 元组的不可变性1.5 元组的常用函数操作&#xff1a;len() - 返回元组中元素的个数。index() - 查找指定元素在元组中的索引。count() - 统…