【求助】rg 搜索结果不一致

在 Open Org Note anki-open-org-note/__init__.py at main · hwiorn/anki-open-org-note · GitHub

    if use_ripgrep and shutil.which(rg_opts[0]):
        pat = config["note_match"].format(note_id=note_id)
        rg_ret = subprocess.run(
            rg_opts + ["--json", "-e", pat, search_path],
            stdout=subprocess.PIPE,
            universal_newlines=True,
        ).stdout

Open Org Note 使用 rg 搜索 ANKI_NOTE_ID: xxxxx 这样的正则,在指定的文件夹中找到 Anki 卡片的对应 Org entry,并提供跳转到该 entry 的功能。

现在有个问题,上面代码其实就是执行:

rg -ni --json -e '^\s*(?:#\+|:)(ANKI_NOTE_ID|ATTR_ID):\s*"?1710499093364"?\b' '/Users/c/Library/Mobile Documents/iCloud~com~appsonthemove~beorg/Documents/braindump/notes/'

例如搜索字符串 1710499093364,在终端得到结果:

"absolute_offset":2907 位置是不正确的,Open Org Note 会根据该 absolute_offset,使用 (goto-char <absolute_offset>) 跳转到该位置。

但是因为 搜索结果 不对,导致跳转位置也不对,非常影响体验。

然而在 Emacs 中使用 counsel-rg 搜索相同的字符串 1710499093364
就能跳转到正确位置。

在文档中使用 (point) 得到的位置是 2843,在终端得到的是 2907,两者不一致。:

但是终端中的结果 "line_number":75 却是对的,和上图截图可以对应。

为啥会这样?如何排查?