gpt4 book ai didi

Emacs 大纲模式根据 grep 自动扩展

转载 作者:行者123 更新时间:2023-12-01 17:59:59 26 4
gpt4 key购买 nike

我在 emacs 中使用 outline-mode(主要是 org-mode),并使用 grep-mode 进行搜索。令我烦恼的是,当我点击 grep 缓冲区中的链接时,折叠的文本不会展开。有没有办法使它自动化?

类似的问题是调用goto-line时自动展开,这个可以通过为 goto-line 函数定义一个建议来实现,但是,goto-linegoto-char 的 defadvice 不适用于鼠标事件。

更一般地说,当我在 emacs 中单击链接时会发生什么?我尝试过了跟踪函数堆栈但找不到源,因为emacs 中使用的事件模式。

最佳答案

对于您问题的第一部分,这是我使用的技巧。评论如下。

(setq org-directory "~/TOPDIR-OF-ORG-FILES")(global-set-key "\C-cog" 'fp-org-grep)(defun fp-org-grep (regexp)  (interactive "MOrg grep? ")  (if (string-equal regexp "")      (error "Rien à trouver!")    (require 'grep)    (unless grep-find-template      (grep-compute-defaults))    (let ((grep-find-ignored-directories nil)          (grep-find-ignored-files nil))      (rgrep regexp "*.org" org-directory))    (setq fp-org-isearch-string regexp)    (save-excursion      (set-buffer "*grep*")      (setq next-error-function 'fp-org-grep-next-error))))(defun fp-org-grep-next-error (n &optional reset)  (compilation-next-error-function n reset)  (org-reveal)  (setq isearch-string fp-org-isearch-string)  (when (or (null search-ring)            (not (string-equal (car search-ring) fp-org-isearch-string)))    (push fp-org-isearch-string search-ring)))(defvar fp-org-isearch-string "")

为了速度,我只将三个 Org 文件保留在我的议程中,但定义了一个“C-c o g”命令以递归地 grep 遍历我的所有 Org 文件。当您通过通常的方式进入任何条目时,组织周围的上下文就会被揭示出来。您也可以点击“C-s”来突出显示搜索到的文本。

弗朗索瓦

关于Emacs 大纲模式根据 grep 自动扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com