老板说,Vim宏都不会用,你的工作效率太低啦~

工作中,对于文本文件的编辑我们经常有这样的需求:

  • 多次重复输入一段相同文本;
  • 生成一段序列化的文本;
  • 每行文本插入一句相同的文本。

除此之外,还有很多需要重复操作的动作。对于这些需求,如果我们人工去操作的话,肯定是非常枯燥乏味,并且要浪费很多时间精力。

这时, Vim 宏就派上用场了,它可以通过一些简单的步骤快速完成这些重复性的操作,省时省力!下面详细讲解。

宏的录制和运行

宏的录制

  1. 在 Vim 编辑器中创建新文件或打开现有文件;
  2. q 并跟上 宏名 开始录制。假设我们想要将宏名命名为 b ,则按 Escqb 开始录制;
  3. 文本编辑ing……
  4. q 停止录制。至此,宏的录制已完成。

宏的运行

@宏名 即可运行宏一次,按 次数@宏名 重复运行宏多次。

下面给出实例来详细介绍。

示例-1:使用宏多次生成相同的文本

例如我们要生成 100 行一样的文字,一种比较笨的办法就是复制然后粘贴所需要的遍数。这种效率非常低,而且非常容易出错。有了宏这个工具,一切变得超级简单!

首先,我们在 Vim 编辑器中创建一个名为 file1.txt 的新文件。

然后,我们按 q 之后再按 z 开始录制宏。这里的 z 就是 宏名 ,后面会用到。如果录制正确,底部就会出现 recording @z 字样。

再之后,按 i 然后输入要需要重复的文本。比如这里输入文本 Learning Vim Macros

最后按 q 停止录制,这时 recording @z 就会从底部消失。这样,一个名为 z 的 宏就录制完成了,后续我们就可以利用这个宏来重复完成文字录入工作。

如果你想运行一次刚刚创建的宏,那么将光标移动到文件的所需位置,然后并按 @z 就可以了,这时文字就会被复制一遍。

如果你想要复制 N 多次这行文字,则可以多次运行刚刚那个宏。此时只需在宏前面加 次数 即可。例如 [email protected] 就可以运行刚才的宏 4 次,相应文字就会被复制 4 遍。

示例-2:使用宏生成序列号

在示例-1里我们是机械重复复制一堆一样的文字,那如果想要生成带序列的文本该如何处理?使用宏也可以轻松完成!

假设我们要生成 101-110 的一系列数字,我们一起来完成这个需求。

首先,在 Vim 编辑器中创建一个名为 file2.txt 的新文件,接着按 i 键入 101.

ESC 退出键入。然后再按 qy 以宏名称 y 开始录制后续的操作。我们将光标移到第一行的开头并按 yy 复制文本,然后按 p 将文本粘贴到下一行。

接着,按 Ctrl + a 将第二行的值从 101 增加到 102 。最后,像之前一样按 q 停止录制,我们的宏就制作完成了。

接下来,就是见证奇迹的时刻!

我们键入 [email protected] ,刚刚所录制的宏就会运行 8 次,生成从 103110 的连续数字。一键操作,简单高效!

这对于一些带有序列性的文本非常有用,你就无需再重复去做 复制-->改数字 这样重复枯燥的工作,同时效率也会大大提升!

示例-3:在文件的每一行中添加相同的文本

我们在操作数据库的时候,很多情况下一些语句非常相似,比如 insert into items values(100, 20077100050, alvin) 这样的文本,会重复很多次。假如我们现在已经有了要插入的数据,如何快速生成多条 SQL 语句?

在这个例子里,我们假设数据文件 file3.txt 有 4 条数据,如下图示。

首先,我们在 Vim 编辑器中打开数据文件 file3.txt ,然后按 ESC ,再然后按 qd 以宏名 d 开始录制。

将光标转到文件的开头,按 i 键插入文本。然后再输入 insert into items values( ,再接着按 ESCwyw 5 次。

在这里,w 用于转到下一个单词,yw 用于复制当前单词。之所以这里要 5 次是因为这里每行有五部分。分别是 11001 , HDD , Samsung (注意逗号也算一部分)。

之后,按 ESCa 键将光标移动到行尾,再输入 );

最后,按 j 然后按 q 。这里,j 用于移动到下一行,q 用于停止录制。这样我们所需要的宏就制作完成了。

现在,我们想要让下面剩下的 3 行的文本都处理成第一行那样的格式,直接按 [email protected] 运行宏 3 次就可以实现。这样一来,在数据库中进行插入就会方便很多,而且我们无需手动一个个去更改,简单高效!

结论

我们在写代码过程中,有很多场合文本、代码高度相似,如果我们手动去一个个修改的话,那效率将会非常低。有了 Vim 下宏这个神器,我们可以通过创建和使用不同类型的宏来完成这些重复性工作,从而节省时间和精力,实现高效编辑。

看完的都是真爱,点个赞再走呗?您的「三连」就是良许持续创作的最大动力!

  1. 关注原创公众号「良许Linux」,第一时间获取最新Linux干货!
  2. 公众号后台回复【资料】【面试】【简历】获取精选一线大厂面试、自我提升、简历等资料。
  3. 关注我的博客:lxlinux.net

原文地址:https://www.cnblogs.com/yychuyu/p/12610730.html

时间: 2024-10-11 13:15:43

老板说,Vim宏都不会用,你的工作效率太低啦~的相关文章

[转帖]基于VIM漏洞CVE-2019-12735的VIM宏后门病毒详解

基于VIM漏洞CVE-2019-12735的VIM宏后门病毒详解 不明觉厉 只要是人做的东西 就会有bug 就会有安全问题 就看发现bug 或者是发现安全问题 有没有收益了 会用linux的都是比较熟悉操作系统等概念的 不容易被钓鱼 反过来 很多用windows的能力会很差, 所以 windows上面显的更加脆弱. 这就好比开丰田车出事故的人 要比开众泰出事故的人要多很多一个道理. 众泰开的少 而且大家都可能会修车了.. https://www.freebuf.com/vuls/205516.h

7种提高工作效率的Vim操作-Vim使用技巧(6)

Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标执行相同的重复性操作.抛砖引玉,作为你体验使用Vim进行高效操作的入门级教程. 1. Vim重复操作命令. 在vim重复操作命令. (英文句点)介绍过,. 命令可以用于重复上次修改.在<Vim实用技巧>一书中花了大量篇幅介绍” . 范式”:一次按键移动,一次按键执行. 假设想在以下的JavaScr

7种提高工作效率的Vim操作

Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标执行相同的重复性操作.抛砖引玉,作为你体验使用Vim进行高效操作的入门级教程. 1. Vim重复操作命令. 在vim重复操作命令. (英文句点)介绍过,. 命令可以用于重复上次修改.在<Vim实用技巧>一书中花了大量篇幅介绍" . 范式":一次按键移动,一次按键执行. 假设想在

【转】Vim速查表-帮你提高N倍效率

Vim速查表-帮你提高N倍效率 转自:https://www.jianshu.com/p/6aa2e0e39f99 去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了. 话归正传,在linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑器之神. 最近抽空整理了这份速查表,收获颇丰,并分享给大家. 进入vim 命令 描述 vim filename 打开或新建文件,并将光标置于第一行首 vim +n filename 打开文件,并将光标置于第n行首 vi

做程序员一般都需要什么学历?大厂招不招低学历?你想知道的都在这里了

我做编程已经有几年了,能不能做程序员和学历没有太直接的关系,但不意味着学习编程什么门槛也没有. 如果高中以下学历学习编程会相当相当费劲,毕竟和别的行业相比编程的门槛还是比较高,有多少人觉得对编程感兴趣,然后心头一热就呼呼买了很多书,开始学起来觉得特别过瘾,然后遇到难的地方就开始犯难,遇到的次数多了就开始退缩或者干脆把书本搁置起来,甚至下次再看看到书本的时候已经是半年之后打扫卫生时. 这里建议如果你只是对编程感兴趣,想学习一下,刚开始去看一些视频,逛一些技术论坛,了解一下.买书自学,除非你有很强的

木林:为什么马云、马化腾、李彦宏都这么看重移动端?

移动互联网现在早已是中国的互联网巨头们角力的新战场.包括阿里巴巴.腾讯.百度三巨头的互联网公司都在以其原有的黏性业务,加速由PC互联网向移动互联网移植. 腾讯由于起始速度更快目前占据领先位置.从公布的数据看,腾讯2014年的移动收入以221亿人民币领先百度,阿里巴巴排名第一.马化腾在中国企业家俱乐部的内部沙龙上说,移动互联网时代的运行规则与PC互联网时代完全不同,腾讯如果没有微信,可能是一场灾难. 马云随后才反应过来,但为时已晚.不禁也发出感慨:"天变了,移动互联网挑战前所未有."马云

vim 宏的使用

1. 基本使用 q[a-z] 开始录制宏 q  停止录制 @[a-z] 使用宏 @@ 调用最近使用的宏 [email protected][a-z] 多次重放宏 2. 宏的执行方式 串行方式:[email protected][a-z] 宏内包含向下一个目标行进行移动的指令,如果出现错误,宏会停止执行 并行方式::normal @[a-z] 在高亮区域的每一行上并行执行宏,某一行出现错误不影响其他行

两个成倍提高工作效率的 Vim 使用技巧

Vim 是个非常好用的工具,很多人一旦开始使用 Vim 之后就再也无法自拔.然而, Vim 仍然有其自身缺陷.陡峭的学习曲线是缺陷之一,在某些使用场景上的局限也不能忽视.今天我们为大家介绍两个方法,来解决使用中的痛点. 在任何地方使用 Vim 我会向大家介绍 Vim-anywhere,这是一个简单的脚本,它允许你使用 Vim 编辑器在 Linux 中的任何地方输入文本.这意味着你能简单地调用自己最爱的 Vim 编辑器,输入任何你所想的,并将这些文本粘贴到任意的应用和网站中.这些文本将在剪贴板可用

当一切都由机器人完成,没有工作后我们会如何赚钱?

如果人工智能接管未来的所有工作,我们怎么办?首先,这只是一个假设.我将人工智能视为补充人类的工具,而不是替代人类的产物.更准确地说,当我谈到人工智能时,这里也包括自动化和机器人技术. 原则上如果人工智能接管人类所有现有的工作,那么所有的员工都将失业.在这种情况下,我不会有钱支付我需要的一切.但对我来说,包括面包师.消防员或银行家在内的所有人都是一样的.我仍然有时间做机器人不能做或人类喜欢做的事.在生产方面,他们将通过机器人生产产品,这比人工便宜且性能更好.采用差异化战略将是困难的,因为人工智能将