如何确保自定义的 emacs 宏在区域上运行?

如何确保自定义的 emacs 宏在区域上运行?

假设我在文件中的 emacs 中定义了一个自定义宏.emacs。有没有办法确保它仅适用于我在执行命令之前在缓冲区中标记的区域,而无需详细了解宏定义?

答案1

我认为这在宏级别是不可能的,它将取决于宏内的命令。话虽这么说,自从我学习 Emacs 以来,宏变得更加灵活,所以我可能遗漏了一些东西。

Emacs 提供了另一种处理部分文件的可能性:缩小。选择您要使用的区域,然后按C-x n n( narrow-to-region) 将缓冲区缩小到所选区域。现在区域外的部分被隐藏,所有命令将仅影响可见部分。按C-x n w( widen) 返回处理整个文件。

与缩小范围一起使用通常很方便的一个功能是间接缓冲区。运行M-x clone-indirect-bufferC-x 4 c以获得编辑同一文件的第二个缓冲区。两个缓冲区具有相同的内容,保存任一缓冲区都会保存文件,但缓冲区具有单独的区域、模式和可见性,因此您可以在一个缓冲区中使用缩小范围,而在另一个缓冲区中保留整个文件视图。

相关内容