初学者Emacs Lisp:交换方程式的左右表达式

时间:2014-04-15 08:20:07

标签: emacs elisp

我是EmacsLisp的新手。我在过去的18个月里一直在使用emacs,但从未对我自己做过任何自定义。但是为了学会这样做,我试图解决以下问题:
给定一行字符形成形式的等式 (一些字符A)=(某些字符B),
我想交换两个表达式A和B.

我确定了似乎是为这个定制的功能 - transpose-regions start1 end1 start2 end2 &optional leave-markers 我有以下问题 -

  1. 如何使用正则表达式指定start1 end1?似乎从缓冲区的开头计算位置!
  2. 如果我想解决一个更普遍的问题,我将光标/标记保持在中心=并想要进行交换,该怎么办?如何在那里指定start end值?
  3. 这对我来说是一次学习练习。请不要发布完整的解决方案。我会把它作为一个编辑,为最终在这里寻找解决方案的人。有关emacs lisp编码风格的任何建议将不胜感激!

1 个答案:

答案 0 :(得分:1)

由于您不想要一个完整的解决方案,我只会给您一个清单 实现它的功能: transpose-regionspointline-beginning-positionline-end-position

这就是你所需要的,假设你已经手动导航到了=。 如果您想在代码中导航到=,请move-beginning-of-linere-search-forward