gpt4 book ai didi

emacs - 将键盘宏应用于 Emacs 中的事件区域

转载 作者:行者123 更新时间:2023-12-01 09:31:12 25 4
gpt4 key购买 nike

我正在尝试更多地学习使用键盘宏,但不知道如何处理。

我需要选择一个区域,然后在该区域上运行两个查询替换。每次地域不同,但查询替换是一样的。

问题出现是因为第一个查询替换(或 replace-string)删除了事件区域。如果我使用C-u C-SPC,它会出现开始标记被保存,但点没有被保存,因此事件区域无法用于第二次替换操作。

如何将两个操作(将作为副作用删除事件区域)应用到键盘宏中的同一区域?

最佳答案

由于我不执行所描述的任务,因此我通常不确定我能否为您提供最快的解决方案,但这里至少有两种可行的方法。

选项 1

此选项涉及在执行查询替换之前使用缩小 将缓冲区减少到事件区域,或者您想对该区域执行任何操作。工作流程如下:

  • ...开始录制键盘宏并激活区域
  • M-x窄域
  • ...通过M-<(beginning-of-buffer)之类的方式,愉快地跳回开始的操作
  • M-x加宽
  • ...停止录制您的键盘宏

您应该能够愉快地将其应用于任何突出显示的区域。

顺便说一句:narrow-to-region 和 widen 有一个默认绑定(bind) C-x n n (narrow-to-region)和 C-x n w (加宽)所以你可以使用以防您没有更改键绑定(bind)

选项 2

此选项涉及使用 寄存器 在“销毁”该区域之前存储该区域的位置。实际的工作流程如下所示

  • ...开始录制键盘宏并激活区域
  • C-x r SPC 1(指向寄存器)
  • C-x C-x(交换点和标记)
  • C-x r SPC 2(指向寄存器)
  • ...执行“破坏”区域的操作
  • C-x r j 2(跳转到寄存器)
  • C-SPC
  • C-x r j 1(跳转到寄存器)
  • ...现在您的区域应该又回来了,所以请愉快地应用任何其他不会“破坏”该区域的操作
  • ...停止录制您的键盘宏

关于emacs - 将键盘宏应用于 Emacs 中的事件区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15166285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com