Inbuffer emacs计算

时间:2010-07-30 01:32:03

标签: emacs

是否可以在emacs中进行inbuffer计算。

例如,如果我的文件有以下数字

10
11个
12

(A)我想将这些数字转换为十六进制(或者就位或者将其粘贴到旁边),

10 A
11 B
12 C

(B)我想对这些数字求和。

10
11个
12

33

(C)我想增加计数(像索引一样)

10
11个
12个
13个
14

1 个答案:

答案 0 :(得分:9)

您可以使用内置计算器和/或\,等替换字符串中的replace-regexp来评估任意elisp表达式。

你可以做的事情或多或少:

:一种。

  1. 标记包含数字的区域。
  2. 执行 M-x replace-regexp
    • 对于匹配的正则表达式,请使用\([[:digit:]]+\)
    • 如需更换,请使用\,(format "%X" (string-to-number \1))
  3. <强>乙

    1. 标记包含数字的区域。
    2. 输入 C-x * g
    3. 输入 V R +
    4. 键入 y 以插入总和,或 C-u y 进行替换。
    5. <强>下进行。

      A 相同,但只标记最后一个数字,并使用\,(format "%s\n%d" \1 (1+ (string-to-number \1)))的替换函数。

      您可以将这些放在宏或函数中,以便将移动点放在正确的位置。