使用VIM宏(macro)完成批量操作

发布时间 - 2020-06-11 00:00:00    点击率:

先看以下两个场景,批量注释多行代码及缩进多行代码。这两个场景是我们日常开发中经常遇到的。如果是使用ide的话,批量注释多行代码只要选定这些行后,然后使用ctrl+/即可。缩进的话,也是选定行然后按tab键就行了。但是,如果是使用vim编辑器的话,这些操作就不是这么来完成的了。今天,和大家介绍下vim下强大的工具——宏。使用他,可以完成许多意想不到的功能哦!

从字面上很难理解宏的意思,其实你就理解成批处理就行了,把宏看成许多命令的集合。然后这些命令集合可以多次执行。

使用宏

宏的使用分为录制以及回放。vim使用q键来开始录制,同时也是一q作为宏的结束按键。

使用q{register}选择需要保持的寄存器,这个寄存器的功能就是把录制的命令保存在其中。

使用@{register}回放寄存器内的命令集合。如想多次播放宏,可以使用数字+@{register},如10@a。

实战

宏的介绍就这么多,现在我们来完成刚开始所说的需求吧。首先,完成批量注释代码的功能。这里,我们先不用宏来完成,而是使用块选择及命令行模式来完成该需求。对于第二个需求,我们才使用宏去完成。

下面是一段代码:

我们选择去将free方法给注释掉。

首先我们来到第70行,在普通模式下按下70G来到70行。按下V进入块选择模式,然后移动光标选择所有的想要注释的行。输入:进入命令行模式,输入normal 0i//,然后按下enter键。

下面,我们再来用宏来完成另一个需求——批量缩进。

可以看到左边空了许多空格,现在我们一起来消除这些没用的空格吧。首先来到第一行,按下qa开始录制宏;按下0w,来到第一个非空格字符串,按下i,然后一直退格,直到所有的空格都删除了;然后按下q键结束录制,至此,宏就已经做好了,接下来就是给剩下的行来播放宏即可。进入块选择模式,将剩下的行全部选择,然后按下:normal @a。


# register  # 字符串  # ide  # vim  # 按下  # 来完成  # 命令行  # 就行了  # 第一个  # 你就  # 很难  # 这么多  # 这两个  # 第二个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在阿里云服务器自主搭建网站?  LinuxCD持续部署教程_自动发布与回滚机制  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在万网ECS上快速搭建专属网站?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何在阿里云高效完成企业建站全流程?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何实现建站之星域名转发设置?  利用python获取某年中每个月的第一天和最后一天  新三国志曹操传主线渭水交兵攻略  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  如何快速生成橙子建站落地页链接?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  简历没回改:利用AI润色让你的文字更专业  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何用花生壳三步快速搭建专属网站?  北京专业网站制作设计师招聘,北京白云观官方网站?  使用C语言编写圣诞表白程序  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何在宝塔面板中创建新站点?  微信小程序 canvas开发实例及注意事项  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  SQL查询语句优化的实用方法总结  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  JavaScript Ajax实现异步通信  ,交易猫的商品怎么发布到网站上去?  制作旅游网站html,怎样注册旅游网站?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  5种Android数据存储方式汇总  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel如何实现事件和监听器?(Event & Listener实战)  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何确认建站备案号应放置的具体位置?  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何快速上传自定义模板至建站之星?  Laravel如何优化应用性能?(缓存和优化命令)  Laravel如何实现API版本控制_Laravel版本化API设计方案  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  如何在云指建站中生成FTP站点?  EditPlus中的正则表达式 实战(2)  深圳网站制作培训,深圳哪些招聘网站比较好?  如何利用DOS批处理实现定时关机操作详解  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例