Emacs通用帮助系统

继续讨论

Emacs有一个很好的帮助系统,具体到ELisp,有describe-functiondescribe-variabledescribe-symbol命令,能打开一个help buffer,还维护一个文档历史,可以跳转到前一个/后一个文档。

其他语言的major-mode的文档,要不就是用eldoc(然而eldoc不是用来显示文档而是显示函数签名/一句话简介的)。要不就自己实现类似的help buffer(eglot的help buffer)。不是很方便。

如果有一个通用的帮助系统提供一个统一的入口和一些基本设施(比如打开一个help buffer,设定快捷键,维护文档历史,提供跳转等等功能),然后由各个major-mode提供backend,在Emacs里编程就更方便了。

各位有什么想法?

1 个赞

自从有了emacs-china,就再没用过Emacs自带的帮助,虽然加入很晚…:sweat::dog: 不过如果有一个通用帮助系统也不错,最好通过它还能直接搜到这个论坛或其他Emacs资源上相关解决方案,那就更好了。

可以用search-web在站内搜索

我只是想楼主如果要做通用帮助系统的话,那不妨把论坛资源也整合进去啊,就不用再用别的工具了,一次搜索就全部了事,甚至可以提供一个配置方案,让大家可以自定义自己的搜索资源。

在 Emacs 里能查看文档就已经很开心了,有时压根就没文档;或者提取不了;或者格式不太好用(如复杂的 HTML)。

当然有历史记录、支持 Revert、支持书签、跟 Help 类似的快捷键等,功能越多越好了。大家自己写自己的 help buffer(一般打开只读模式、Fill 长行、支持语法高亮、可以点击链接就 OK 了) 估计是因为 Emacs 自带的帮助系统的代码不太好复用。

Mac里的Dash算吗?

能说说revert和书签是什么效果吗?我想实现一个简单的框架,支持elisp、eglot试试。

类似的东西,多出来动态文档。但是做到dash那种程度很难,Emacs显示rich text比较无力。不过大多文档大概都可以处理成纯文本?或许也有机会加入对他们的支持。

其实Emacs想做的,参见info-lookup.el。就是支持的语言很有限。

如果只是语言的话, https://devdocs.io/可以考虑整合这个进去,不过单独用也足够了,离线版也不错

GitHub - skeeto/devdocs-lookup: Quick Emacs API lookup on devdocs.io 刚看好像有个,不过还没试

Revert 就是刷新,书签就是 Bookmark,都是 Emacs 自带的功能(概念),Emacs 本身的 Help 系统支持。可能不一定多么重要的功能。

大多数文档目标都是 HTML 或者说 Web 浏览器,而不是文本界面,稍微复杂点的网页,文本界面就处理不了了。那些嵌入浏览器的编辑器、IDE比较容易处理。而 Emacs 的 Webkit 也不普及,譬如我还没在 Mac 上用过。

linux eaf很容易搞定

2 个赞

写了一个简单的demo

得益于helpful简单的结构,支持helpful后端挺容易。

用法:

  • 加载两个文件
  • M-x ghelp-minor-mode
  • M-x ghelp-describe-symbol / ghelp-describe-at-point

已有的功能:

  • 历史:f/b 跳转
  • 多个文档并存(变量+函数):TAB折叠/展开,n/p跳转
  • 刷新:g

下一步我打算看看自带help的face之类的后端。

日常可用,挺香www

4 个赞