Emacs 如何在缓冲区中搜索包含给定值的数值范围

Emacs 如何在缓冲区中搜索包含给定值的数值范围,emacs,text-search,Emacs,Text Search,我有一个缓冲区,它保存一些lldb输出,其中包含许多地址范围,如[0x00007fff60489000-0x00007fff604c0000) 给定一个地址(也是十六进制的),我如何搜索包含该地址的范围?我假设这需要一些自定义的elisp代码。您可以使用calc来实现这一点。十六进制的语法略有不同,我不会说明如何转换它们,但您的功能的核心可以编写如下 (require 'calc) (defun is-between (n low high) (and (equal "1" (calc-e

我有一个缓冲区,它保存一些lldb输出,其中包含许多地址范围,如
[0x00007fff60489000-0x00007fff604c0000)


给定一个地址(也是十六进制的),我如何搜索包含该地址的范围?我假设这需要一些自定义的elisp代码。

您可以使用
calc
来实现这一点。十六进制的语法略有不同,我不会说明如何转换它们,但您的功能的核心可以编写如下

(require 'calc)

(defun is-between (n low high)
  (and (equal "1" (calc-eval (concat n " - " low " > 0")))
       (equal "1" (calc-eval (concat high " - " n " > 0")))))

(is-between "16#f0" "16#f" "16#ff")

这只提供了一个用于测试一个数字的谓词,而不是如何搜索它的答案。请考虑通过提供一个搜索命令来增强答案。提示:绑定变量<代码> iSeCH过滤器谓词< /代码>。