0

0

Sublime中的宏 (Macro) 功能如何录制与使用? (自动化操作)

冰火之心

冰火之心

发布时间:2026-01-19 13:45:31

|

377人浏览过

|

来源于php中文网

原创

Sublime Text宏是纯按键序列录制,不支持鼠标和逻辑判断;需手动保存为.sublime-macro文件才能复用,调用依赖快捷键绑定或命令面板,本质为JSON格式的机械回放,适用于固定模式操作而非动态文本处理。

sublime中的宏 (macro) 功能如何录制与使用? (自动化操作)

如何在 Sublime Text 中录制宏

Sublime Text 的宏功能本质是记录按键序列,不支持鼠标操作或逻辑判断。录制前确保光标处于预期起始位置,否则回放时可能作用于错误行或列。

  • 按下 Ctrl+Q(Windows/Linux)或 Cmd+QmacOS)开始录制
  • 执行你想自动化的操作:比如 Ctrl+Shift+K 删除当前行、Home 移动到行首、输入 // 添加注释前缀
  • 再次按下 Ctrl+Q / Cmd+Q 停止录制

录制过程不会有任何视觉提示,但状态栏右下角会短暂显示 Recording macro —— 如果没看到,说明已处于录制中或已停止。

如何保存和调用已录制的宏

默认录制的宏是临时的,关闭 Sublime 后即丢失。要复用必须手动保存为 .sublime-macro 文件。

  • 录制完成后,执行菜单命令:Tools → Save Macro…,保存路径建议为 Packages/User/ 目录(可通过 Preferences → Browse Packages… 快速打开)
  • 文件名需以 .sublime-macro 结尾,例如 comment_line.sublime-macro
  • 调用方式有两种:
    – 快捷键:默认无绑定,需在 Preferences → Key Bindings 中添加,例如:
    [
      { "keys": ["ctrl+alt+c"], "command": "run_macro_file", "args": {"file": "Packages/User/comment_line.sublime-macro"} }
    ]

    – 命令面板:按 Ctrl+Shift+P 输入 Run Macro,选择对应文件

宏文件结构与常见失效原因

保存后的 .sublime-macro 是纯 JSON,内容是按键事件的有序数组。它不记录上下文,只机械重放按键流 —— 这是绝大多数“宏不工作”的根源。

靠岸学术
靠岸学术

一款集翻译,阅读,文献管理于一体的英文文献阅读器

下载
  • 如果录制时用了 Ctrl+F 查找,回放时会打开查找框,但不会自动填入原搜索词(除非你当时按了 Enter 确认)
  • 涉及方向键(如 )或编辑操作(如 Backspace)时,若当前光标位置/行长度/选区状态与录制时不一致,结果必然错乱
  • 不要试图用宏处理多行不规则缩进或动态变量名;更适合固定模式操作,例如「删除行尾空格 + 换行 + 缩进4空格」

一个典型有效宏示例(删除行尾空白并换行):

[
  {"command": "select_all"},
  {"command": "right_delete"},
  {"command": "insert", "args": {"characters": "\n"}},
  {"command": "insert_snippet", "args": {"contents": "    "}}
]

宏与插件的边界在哪

宏不是脚本,没有变量、循环、条件分支。当操作开始依赖文本内容(比如“如果当前行包含 TODO 才添加注释”)、跨文件操作、或需要正则匹配替换时,宏就力不从心了。

  • 简单重复:用宏,轻量、无需安装、启动快
  • 带逻辑/上下文判断:改用 Python 插件(sublime_plugin.TextCommand),或借助 RegReplaceChain of Command 等成熟插件
  • 别把宏当自动化工具去凑合复杂任务——它只是键盘录像机,不是编译器

真正容易被忽略的是:宏回放时不会暂停等待你确认,也不会报错。它静默执行每一步,哪怕光标早已偏离预期位置。验证宏是否可靠,唯一办法是在不同文件、不同光标状态下手动多试几次。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

457

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

549

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

337

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1496

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1171

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

836

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

463

2023.08.02

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.6万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号