【问题标题】:How to search a buffer for a numeric range which contains a given value如何在缓冲区中搜索包含给定值的数字范围
【发布时间】:2016-05-02 07:05:26
【问题描述】:

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

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

【问题讨论】:

    标签: emacs text-search


    【解决方案1】:

    您可以为此使用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")
    

    【讨论】:

    • 这仅提供了一个用于测试数字的谓词,而不是如何搜索其出现的答案。考虑通过提供搜索命令来加强您的答案。提示:绑定变量isearch-filter-predicate
    猜你喜欢
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多