VSCode中的宏(Macros)插件:录制和回放操作序列

发布时间 - 2025-12-25 00:00:00    点击率:
VSCode 本身不内置宏功能,但可通过 geddski 开发的 Macros 插件实现操作录制与回放;安装后在 settings.json 的 "macros" 字段定义命令序列,再通过快捷键绑定触发,如 trimAndSave、formatAndSave 等实用宏可大幅提升编辑效率。

VSCode 本身不内置宏功能,但通过插件可以轻松实现操作录制与回放,最常用、稳定且更新活跃的是 Macros 插件(作者:geddski)。

安装与基础配置

在扩展市场搜索 “Macros”(注意认准作者为 geddski,图标是两个交错的齿轮),点击安装并重启 VSCode。安装后无需额外配置即可使用,所有宏都通过 settings.json 定义。

  • 打开命令面板(Ctrl+Shift+P / Cmd+Shift+P),输入 Preferences: Open Settings (JSON) 编辑配置文件
  • "macros" 字段下添加自定义宏,例如:
"macros": {
  "trimAndSave": ["editor.action.trimTrailingWhitespace", "workbench.action.files.save"]
}

这样就定义了一个名为 trimAndSave 的宏,执行时会先删末尾空格,再保存文件。

录制真实操作(需配合其他插件)

原生 Macros 插件不支持“自动录制”,它只负责按顺序触发已有命令。如需录制鼠标/键盘行为(比如连按多次 Ctrl+Left 跳词、输入固定模板),可搭配 Command LoggerAuto Hotkey(外部) 辅助分析操作对应命令,再手动写入宏。

  • 推荐流程:先用 Command Logger 记录一次完整操作 → 查看输出的命令 ID → 挑出关键命令 → 整理进 settings.json 的宏数组中
  • 常见可录制命令包括:editor.action.addCommentLineeditor.action.insertLineAftereditor.action.replaceAll 等编辑类指令
  • 注意:不能录制“输入文字”这类无命令ID的操作;需用 type 命令模拟,例如:{"command": "type", "args": {"text": "// TODO:"}}

绑定快捷键快速触发

宏定义好后,默认无法直接调用,必须绑定快捷键或通过命令面板启动。

  • 打开快捷键设置(Ctrl+K Ctrl+S),点击右上角“打开键盘快捷方式(JSON)”图标
  • 添加快捷键条目,例如:
{
  "key": "ctrl+alt+t",
  "command": "macros.trimAndSave"
}

保存后,按下 Ctrl+Alt+T 就会自动执行删空格+保存两步操作。

实用宏示例(可直接复制使用)

以下是一些高频场景的宏定义,贴进 settings.json"macros" 区域即可生效:

  • 格式化+保存"formatAndSave": ["editor.action.formatDocument", "workbench.action.files.save"]
  • 注释+跳行+继续写"commentThenNewLine": ["editor.action.commentLine", "editor.action.insertLineAfter", "cursorMove", {"args": {"to": "lineEnd"}}]
  • 切换终端并清屏"clearTerminal": ["workbench.action.terminal.toggleTerminal", "workbench.action.terminal.clear"]

基本上就这些。宏不是万能的,但对重复性编辑动作来说,几行配置就能省掉大量机械操作。


# vscode  # js  # json  # mac  # ai  # 配置文件  # auto  # 绑定  # 的是  # 就会  # 鼠标  # 就能  # 已有  # 这类  # 自定义  # 不支持  # 按下 


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


相关推荐: 作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  什么是javascript作用域_全局和局部作用域有什么区别?  如何在IIS管理器中快速创建并配置网站?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  魔方云NAT建站如何实现端口转发?  详解jQuery停止动画——stop()方法的使用  详解jQuery中的事件  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  北京专业网站制作设计师招聘,北京白云观官方网站?  网站图片在线制作软件,怎么在图片上做链接?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Laravel怎么在Blade中安全地输出原始HTML内容  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  如何基于云服务器快速搭建个人网站?  新三国志曹操传主线渭水交兵攻略  如何快速搭建高效简练网站?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel如何使用Collections进行数据处理?(实用方法示例)  如何在自有机房高效搭建专业网站?  js实现点击每个li节点,都弹出其文本值及修改  如何确保西部建站助手FTP传输的安全性?  如何快速搭建高效WAP手机网站?  制作电商网页,电商供应链怎么做?  简单实现Android验证码  香港服务器网站推广:SEO优化与外贸独立站搭建策略  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  html5的keygen标签为什么废弃_替代方案说明【解答】  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Python自动化办公教程_ExcelWordPDF批量处理案例  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何用PHP快速搭建CMS系统?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何在IIS7上新建站点并设置安全权限?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  大连 网站制作,大连天途有线官网?  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  Android实现代码画虚线边框背景效果  JavaScript实现Fly Bird小游戏  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何用5美元大硬盘VPS安全高效搭建个人网站?  Laravel如何实现数据库事务?(DB Facade示例)  如何在万网开始建站?分步指南解析  如何在阿里云完成域名注册与建站?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  *服务器网站为何频现安全漏洞?  Bootstrap整体框架之JavaScript插件架构