每日 Emacs Tip:Keyboard Macros(键盘宏)——内置小功能详解

news/2025/11/18 17:42:19/文章来源:https://www.cnblogs.com/xiaoma2018/p/19238695

每日 Emacs Tip:Keyboard Macros(键盘宏)——内置小功能详解

以下内容为个人定制的智谱清言每日Emacs功能介绍,全文内容由AI生成,仅供参考。

每日 Emacs Tip:Keyboard Macros(键盘宏)——内置小功能详解


🧩 什么是 Keyboard Macros?

Keyboard Macros(键盘宏)是 Emacs 内置的一个非常实用的小功能。它允许你录制一系列按键操作,然后随时“一键重放”这些操作。非常适合重复性任务,比如批量编辑、格式化、加注释等。

它不需要写 Lisp 代码,只需用普通编辑操作即可定义宏,对新手友好,但也能被老手灵活组合,提高效率。


📖 基本用法(以官方文档为准)

1️⃣ 开始录制宏

  • F3C-x ( 开始录制键盘宏。此时 Mode Line 会显示“Def”字样,表示正在录制。

2️⃣ 执行你要录制的操作

  • 比如跳到下一行、删除几个字符、插入一段文本、复制粘贴等。
  • 你在录制期间的所有按键都会被记录。

3️⃣ 结束录制

  • F4C-x ) 结束录制。此时宏已被定义,并且其实已经执行了一次(录制时就已经执行了一遍)。

4️⃣ 执行宏

  • F4 立即执行刚刚录制的宏一次。
  • 如果想连续多次执行,可以在按 F4 前加数字参数,例如 C-u 10 F4 会重复执行 10 次。

🎯 举例说明

假设你有这样的任务:

在每一行开头插入“TODO: ”,一共 10 行。
操作步骤:

  1. 光标放在第一行开头,按 F3 开始录制。
  2. 输入 TODO: ,然后按 C-n(下一行)。
  3. F4 结束录制。
  4. C-u 9 F4(再执行 9 次,加上录制时那次正好 10 行)。
    瞬间全部完成!

🔁 宏的更多玩法

宏环(Keyboard Macro Ring)

  • Emacs 会把你录制的多个宏放在“宏环”中,可以循环切换。
  • C-x C-k C-pC-x C-k C-n 可以在宏环中前后切换。

宏计数器(Keyboard Macro Counter)

  • 录制时可以用 C-x C-k C-i 插入一个递增数字,适合需要编号的场景。
  • 例如:
    1. F3 开始录制。
    2. 输入 Item ,然后 C-x C-k C-i 插入数字,C-n 下一行。
    3. F4 结束。
    4. C-u 10 F4,你会得到:
      Item 1
      Item 2
      …
      Item 10
      

保存宏

  • 可以把宏命名并保存到配置中,长期使用。
  • M-x kmacro-name-last-macro 给宏命名。
  • M-x insert-kbd-macro 把宏的 Lisp 代码插入文件,保存到 .emacsinit.el

🛠 实用技巧

  • 出错时怎么办?
    • 录制时如果出错了,可以按 C-g 中止,然后重新录制。
    • 也可以用 C-x C-k C-e 编辑刚刚录制的宏。
  • 宏和 register 结合
    • 可以把宏存到 register 中,例如 C-x C-k C-r a 把宏存到 a,之后 C-x j a 调用。
  • 宏的“临时性”
    • 宏默认是临时的,退出 Emacs 就没了,除非你保存到配置。

📘 小结

Keyboard Macros 是 Emacs 中一个“轻量但强大”的内置功能,非常适合:

  • 临时、重复性的文本编辑任务;
  • 新手快速入门 Emacs 的自动化能力;
  • 老手提升效率,避免写繁琐的 Lisp 脚本。

如果你想深入了解,可以在 Emacs 中按 C-h r m keyboard macro RET 阅读官方手册。


希望这个小技巧对你有帮助!如果你感兴趣,下次还可以介绍 Emacs Lisp 的实用语法。

Happy Hacking! 🚀


以上内容由AI生成,仅供参考和借鉴

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/969192.shtml

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

相关文章

每日 Emacs Tip:Emacs Lisp 语法详解 —— 反引用(Backquote)

每日 Emacs Tip:Emacs Lisp 语法详解 —— 反引用(Backquote)以下内容为个人定制的智谱清言每日Emacs功能介绍,全文由AI生成,仅供参考。 每日 Emacs Tip:Emacs Lisp 语法详解 —— 反引用(Backquote) 什么是反…

详细介绍:【物联网架构】

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:FPGA开发入门:深入理解计数器——数字逻辑的时序基石

深入解析:FPGA开发入门:深入理解计数器——数字逻辑的时序基石pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

使用Kepserver发布数据到MQTT

本文选自博客园,码下来收藏,原文地址: KEPServer6:把OPC数据通过MQTT上传 - 南翔技校毕业后 - 博客园 IoT Gateway 即 Internet of Things Gateway 物联网网关。kep自带网关功能,能把OPC定义的数据,通过mqtt上传…

CF1898F Vova Escapes the Matrix

首先发现分三种情况讨论,只有第三种比较困难。 但也困难不到哪里去,根据经典结点,路径形式一定是一段重复的加上两边分开的,我们通过一遍反着 BFS 求出两边分开的,枚举点即可。

2025年佛山二手房拍卖公司专业推荐指南,佛山二手房拍卖/佛山房屋拍卖全流程服务

当前佛山二手房市场交易活跃,拍卖渠道因价格透明、流程规范而备受关注。然而,拍卖市场信息不对称、服务专业性不足、后续手续繁琐等问题,常导致买卖双方权益难以得到充分保障。部分拍卖公司资质不全、服务不完善,使…

Flask/Jinja2 SSTI研究 —— 为什么总是lipsum?

本文发布在我的githubpage上,如果需要获得更好的阅读体验请访问原地址: Python SSTI研究 - 对CTF中基于Python(尤其是Jinja2)的模板引擎的注入研究 - lamaper SSTI 在Python中,SSTI经常与jinja2、Django、Mako、T…

linux as 命令

linux as 命令并不是一个标准的 Linux 命令,可能是你对某个特定工具或脚本的误写或误解。为了更好地帮助你,我需要澄清几个可能的含义:1. as 是 as 编译器(Assembly Compiler) 在 Linux 系统中,as 是用于 汇编 的…

2 小时,我搭了一套工单实时跟进系统,让每个工序进度一目了然!

说句实话,现在很多制造业车间最难的,不是订单多、工艺复杂,而是一个老大难问题——工单到底做到哪了? 我以前在几个车间帮忙做数字化改造时发现,90% 的生产延误不是技术不到位,而是没人知道工单卡在哪、卡了多久…

从 OKR 到 BARS:绩效管理系统助你精准匹配考核工具

每到绩效季,HR和管理者们总能陷入相似的困境:用KPI考核创新岗,员工成了“指标奴隶”;用OKR要求行政岗,目标却始终飘在半空;360度考核搞了半天,最终变成“人情打分”。其实,没有最好的考核方式,只有最适配的考…

linux arp缓存

在 Linux 系统中,arp(Address Resolution Protocol)用于将 IP 地址与 MAC 地址进行映射,以便在局域网中进行通信。arp 缓存(ARP cache)是系统维护的一个缓存机制,用于存储已知的设备的 IP 地址和对应的 MAC 地址…

CCS新能源船舶智能监控终端

硬件资源ARM工控机 2*485 (自定义协议解析+Modbus RTU轮询) 2*CAN 4G 外接设备可燃气传感器、火灾报警传感器、定位模块、BMS电池系统、推进电机 主要功能船舶电池动力系统在线监测数据交换技术要求 附加功能本地…

每日 Emacs Tip:winner-mode —— 窗口布局的“撤销/重做”神器

每日 Emacs Tip:winner-mode —— 窗口布局的“撤销/重做”神器以下内容为个人定制的智谱清言每日Emacs功能介绍文章,全文由AI生成,仅供参考。每日 Emacs Tip:winner-mode —— 窗口布局的“撤销/重做”神器📖 功…

第四章 栈与队列--栈

4.1 栈的定义 4.2 栈的顺序存储结构及实现 4.3 两栈共享空间 4.4 栈的链式存储结构及实现 4.5 栈的作用 4.6 栈的应用-递归 4.7 栈的作用-四则运算表达式求值

RAG入门

RAG 检索增强生成(Retrieval Augmented Generation),已经成为当前最火热的LLM应用方案和打开方式了。比如常见的智能客服,就是rag的应用。 既然有了 deepseek 这种成熟的大模型,为什么还需要 rag 呢?举个例子,比…

每日 Emacs Tip:Abbrev Mode(缩写模式)

每日 Emacs Tip:Abbrev Mode(缩写模式)以下内容为个人定制的智谱清言每日Emacs内置功能介绍,全文为AI生成,仅供参考。每日 Emacs Tip:Abbrev Mode(缩写模式) 1. 什么是 Abbrev Mode? abbrev-mode(缩写模式)…

2025年陶瓷污泥压滤机厂家权威推荐榜单:铜尾渣陶瓷压滤机/陶瓷厂真空过滤机/精密陶瓷脱水机源头厂家精选

随着工业环保要求日益严格,陶瓷污泥处理成为行业关注焦点。压滤机作为固液分离的核心设备,其技术性能直接影响污泥脱水效率与运营成本。本文基于企业生产能力、技术专利储备、设备运行数据及市场服务网络,筛选出三家…

2025 年算法备案咨询服务公司最新推荐榜:互联网信息 / 深度合成 / AI 算法 / 生成式 AI 服务备案权威测评

引言 随着生成式 AI 与深度合成技术的规模化应用,算法备案已成为企业合规经营的核心门槛,覆盖互联网信息服务、AI 算法部署、生成式 AI 服务等全场景。据国际数据合规协会(IDCA)2025 年度测评报告显示,仅 32% 的企…

掌握Ansible:自动化运维全攻略 - 实践

掌握Ansible:自动化运维全攻略 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

Notes about interesting concepts in Linear Algebra (2025 Fall)

Lecture 3 Theorem. Let $\sf T$ be a linear transformation from $\sf V$ to $\sf W$, then $\dim(\mathsf{V})=\text{nullity}(\mathsf{T})+\text{rank}(\mathsf{T})$. Corollary. For any $y\in \mathsf{V}$, $y+\…