以下是我之前写的一些答案,可能会帮助你找到正确的方向。并没有一个单一(默认)的命令可以搜索所有文档来源,但这在大多数情况下都没问题。
(我从未调查过这个领域的第三方库;可能会有一些东西能够更全面地搜索文档。)
M-x elisp-index-search 和 M-x emacs-index-search 是很好的首选。
M-x info-apropos
不太为人所知,但非常有用,因为它可以搜索系统中所有已知 Info 文件的索引。当然,它相应地比其他功能慢。
最重要的是确保您知道如何使用 Info 阅读器!(查看这些链接以了解更重要的细节)。
我使用以下绑定快速获取 apropos
命令(一定要阅读 C-h v apropos-do-all
,它的行为可以通过向其提供命令前缀参数来触发)。
;; Custom 'apropos' key bindings
(global-set-key (kbd "C-h C-a") 'my-apropos-prefix)
(define-prefix-command 'my-apropos-prefix nil "Apropos (a,d,f,i,l,o,v,C-v)")
(define-key my-apropos-prefix (kbd "a") 'apropos)
(define-key my-apropos-prefix (kbd "C-a") 'apropos)
(define-key my-apropos-prefix (kbd "d") 'apropos-documentation)
(define-key my-apropos-prefix (kbd "c") 'apropos-command)
(define-key my-apropos-prefix (kbd "f") 'apropos-command)
(define-key my-apropos-prefix (kbd "i") 'info-apropos)
(define-key my-apropos-prefix (kbd "l") 'apropos-library)
(define-key my-apropos-prefix (kbd "o") 'apropos-user-option)
(define-key my-apropos-prefix (kbd "v") 'apropos-variable)
(define-key my-apropos-prefix (kbd "C-v") 'apropos-value)
我也经常使用这些:
(global-set-key (kbd "C-h C-l") 'find-library)
(global-set-key (kbd "C-h C-f") 'find-function)
(global-set-key (kbd "C-h C-k") 'find-function-on-key)
(global-set-key (kbd "C-h C-v") 'find-variable)
这些函数用于查看源代码,虽然在大多数文档中
describe-*
命令更有用,但对于尚未在Info手册中涵盖的库,在其源代码开头有良好的评论也并不罕见。因此,上述函数和绑定为访问源代码以检查此类文档提供了非常方便的快捷方式。
当然,在
C-h
帮助前缀(或如果您喜欢,则为
<f1>
)上有大量默认绑定,包括一些(但不是全部!)上述的
describe-*
命令。键入
C-h C-h
并阅读它列出的所有选项。您可能不关心其中的一些,而您可能会突然发现它们比您上次查看时更加有趣。
还要检查
M-x apropos-command RET ^describe- RET
。
最后,请查看“帮助”菜单!特别是“搜索文档”子菜单,但如上所述,请注意其他项目。
最后,有时我确实需要在 Emacs 源代码中使用 grep。如果你的文件全部未压缩,则像往常一样可以使用 M-x rgrep
。但是,如果所有的 elisp 文件都被压缩了,你就需要使用 M-x zrgrep
(对一些人来说,这个命令的存在可能是一个新闻)。
apropos-command
,如果这没有自动提供有用信息,则继续使用更慢的资源? - leftaroundabout