【发布时间】:2016-03-20 15:10:53
【问题描述】:
我是 elisp(但不是编程)初学者,对实现某个功能的最佳实践有一些疑问。我写了一个 elisp 函数,它根据某些规则重新格式化汇编源代码;此功能目前适用于单行。它基本上使用行内导航、查看子表达式和替换匹配调用来实现目标。
现在我想将其应用于标记区域,逐行处理该区域。该行为将类似于 indent-region 函数。
推荐(且有效)的方法是什么?我考虑使用(line-number-at-pos ...) 应用于(region-beginning) 和(region-end) 来计算行号,然后从上到下移动,逐行处理缓冲区,修改这些。
另外,我需要通过此操作保留什么?我虽然关于 (save-match-data ...) 并且不确定如何处理标记和点。我猜它们将无用,因为文本范围发生了变化。
【问题讨论】: