You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim宏转带快捷键绑定的Emacs键盘宏函数及JSON行处理咨询

Emacs键盘宏使用指南(含Vim用户迁移参考)

一、Vim宏转换为带快捷键的Emacs键盘宏函数

首先澄清认知偏差:Emacs的「键盘宏」和Vim宏本质完全一致,都是录制用户的键盘操作序列并回放,和用于代码生成的Elisp defmacro 宏是完全不同的两个概念,你此前的混淆是把两种定义完全不同的「宏」混为一谈了。

操作逻辑和Vim高度对应,步骤如下:

  • 录制阶段:F3 对应Vim的 q<寄存器号> 启动录制,完成所有操作后按 F4 对应Vim的 q 结束录制
  • 临时回放:直接按 F4 即可,对应Vim的 @<寄存器号>;要指定回放次数的话按 C-u <次数> F4
  • 永久保存并绑定快捷键:
    1. 录制完成后执行 M-x name-last-kbd-macro,为刚录制的宏起一个自定义名称,比如 my-vim-migrated-macro
    2. 执行 M-x insert-kbd-macro,选择刚才定义的名称,Emacs会自动生成可直接写入配置的Elisp代码
    3. 在你的 init.el 配置中添加快捷键绑定:(global-set-key (kbd "C-c m") 'my-vim-migrated-macro),把 C-c m 替换为你想用的快捷键即可

二、用Emacs键盘宏批量处理JSON行URL

你给出的JSON行主要问题是部分行末尾缺失闭合引号与逗号,按以下步骤录制键盘宏即可批量处理:

  1. 按 F3 启动录制
  2. 按 C-a 跳到当前行首,按 C-s "url": 定位到URL值的起始引号位置,按 C-f 跳过引号移动到URL内容开头
  3. 按 C-e 跳到行尾,检查末尾字符:如果没有闭合引号就输入 ",如果没有末尾逗号就输入 ,
  4. 按 C-n 跳到下一行,按 F4 结束录制
  5. 将光标移动到第一个需要处理的行,执行 C-u 0 F4,宏会自动重复执行直到文件末尾,完成全部行的处理

如果你的JSON格式更复杂,也可以先切换到json-mode,配合宏做更精准的字段定位处理

内容的提问来源于stack exchange,提问作者Andre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:33:02