如何在 minibuffer 显示当前 point 所在的 section?

举个例子, 我在看 man bash, consult-imenu 或者 consult-outline 能看到有哪些 sections, 但我想立即看到当前 point (就是鼠标位置) 所在的 section. 对于代码也是如此, 我想看到当前 point 在哪个函数中(函数可能很长). 如果能在 minibuffer 显示就好了, 或者不限于 minibuffer, 只要能快速得到这个信息就好了.

最近看到过一个GitHub - JasZhe/window-stool: Emacs package that provides code context/breadcrumbs similar to context.vim and topsy. Like a stepping stool for your window.

which-function-mode: Which Function (GNU Emacs Manual).

man 的话默认不支持,可以自己修改 which-func-functions, e.g.:

(add-to-list 'which-func-functions
             (lambda (&rest _)
               (when (eq major-mode 'Man-mode)
                 (save-excursion
                   (when (re-search-backward (rx bol (group (+ (not space)) (+? nonl)) eol) nil t)
                   (match-string 1))))))
1 个赞

awesome-tray基于treesit实现了,which-func在高速移动光标时太卡了。

1 个赞

感谢, 发一个结合 awesome-tray-mode 的效果图, 很是不错

为啥我没有如猫大建议用 ts 的? 那是因为至今我也没用 treesit, 因为我的配置有的依赖 major-mode 这个变量, treesit 会改变每一个语言的 major-mode, 这一点我还不能接受, 再说现在的语法高亮我也可以接受了.