由
继续讨论
Emacs有一个很好的帮助系统,具体到ELisp,有describe-function
,describe-variable
,describe-symbol
命令,能打开一个help buffer,还维护一个文档历史,可以跳转到前一个/后一个文档。
其他语言的major-mode的文档,要不就是用eldoc(然而eldoc不是用来显示文档而是显示函数签名/一句话简介的)。要不就自己实现类似的help buffer(eglot的help buffer)。不是很方便。
如果有一个通用的帮助系统提供一个统一的入口和一些基本设施(比如打开一个help buffer,设定快捷键,维护文档历史,提供跳转等等功能),然后由各个major-mode提供backend,在Emacs里编程就更方便了。
各位有什么想法?
1 个赞
自从有了emacs-china,就再没用过Emacs自带的帮助,虽然加入很晚…
不过如果有一个通用帮助系统也不错,最好通过它还能直接搜到这个论坛或其他Emacs资源上相关解决方案,那就更好了。
我只是想楼主如果要做通用帮助系统的话,那不妨把论坛资源也整合进去啊,就不用再用别的工具了,一次搜索就全部了事,甚至可以提供一个配置方案,让大家可以自定义自己的搜索资源。
在 Emacs 里能查看文档就已经很开心了,有时压根就没文档;或者提取不了;或者格式不太好用(如复杂的 HTML)。
当然有历史记录、支持 Revert、支持书签、跟 Help 类似的快捷键等,功能越多越好了。大家自己写自己的 help buffer(一般打开只读模式、Fill 长行、支持语法高亮、可以点击链接就 OK 了) 估计是因为 Emacs 自带的帮助系统的代码不太好复用。
能说说revert和书签是什么效果吗?我想实现一个简单的框架,支持elisp、eglot试试。
类似的东西,多出来动态文档。但是做到dash那种程度很难,Emacs显示rich text比较无力。不过大多文档大概都可以处理成纯文本?或许也有机会加入对他们的支持。
其实Emacs想做的,参见info-lookup.el。就是支持的语言很有限。
如果只是语言的话, https://devdocs.io/可以考虑整合这个进去,不过单独用也足够了,离线版也不错
Revert 就是刷新,书签就是 Bookmark,都是 Emacs 自带的功能(概念),Emacs 本身的 Help 系统支持。可能不一定多么重要的功能。
大多数文档目标都是 HTML 或者说 Web 浏览器,而不是文本界面,稍微复杂点的网页,文本界面就处理不了了。那些嵌入浏览器的编辑器、IDE比较容易处理。而 Emacs 的 Webkit 也不普及,譬如我还没在 Mac 上用过。
写了一个简单的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 个赞