我怎样才能简单地搜索所有可用的文档文本?

lef*_*out 5 emacs

我确信Emacs的自我记录很棒,但是我似乎无法理解应该如何使用它,因为谷歌搜索我需要的东西通常只需要几秒钟我通常只需要几秒钟. - 不完全令人满意!(离线时根本就不可能,我喜欢在旅途中等...)

这让我想知道:为什么我不能只通过所有本地安装的文档"google",给我一些看起来像我正在搜索的字符串的东西?我想甚至可以grep通过从命令行ping所有文件来实现,但这不可能是这样做的.

apropos 听起来它应该做那样的事情,但事实并非如此......我从来没有发现任何关于那个我还不知道的命令.

phi*_*ils 6

以下是我写过的几个前面的答案,可能会让你指出正确的方向.没有一个(默认)命令可以搜索所有文档源,但是大部分时间都可以.

(我从来没有调查过这个领域的第三方图书馆;可能会有一些东西采用更全面的方法来搜索文档.)

M-x elisp-index-search并且M-x emacs-index-search是优秀的第一个停靠港.

M-x info-apropos不太知名但非常有用,因为它搜索系统上所有已知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)
Run Code Online (Sandbox Code Playgroud)

我也从中获得了很多用处:

(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)
Run Code Online (Sandbox Code Playgroud)

这些函数用于查看源代码,虽然describe-*命令在大多数文档中更有用,但对于Info手册尚未涵盖的库,在源代码的开头有好的注释也是不常见的. .因此,上述函数和绑定为访问源代码以检查此类文档提供了非常方便的快捷方式.

当然,在C-h帮助前缀(或者<f1>如果您愿意)上有一堆默认绑定,包括上述describe-*命令的一些(但不是全部!).类型C-h C-h通过它的所有列出的选项读取.有些你可能不关心,有些你可能突然决定对你来说比你最后一次看起来更有趣.

检查一下M-x apropos-command RET ^describe- RET.

最后,看看"帮助"菜单!特别是"搜索文档"子菜单,但如上所述,还要注意其他项目.

最后,我确实找到了实际上不时地使用Emacs源的原因.如果你有一切都没有压缩,那么M-x rgrep你的朋友就像往常一样.但是,如果(未编译的)elisp全部被gzip压缩,那么你想要M-x zrgrep(其存在有时是人们的新闻).


6EQ*_*UJ5 1

安装像recoll这样的东西,然后你可以根据需要全文搜索整个硬盘。

Recoll 是一款桌面搜索工具,它在友好的 GUI 中提供高效的全文搜索(从单个单词到任意复杂的布尔搜索),技术复杂程度最低,并且几乎没有强制的外部依赖项。它运行在许多类 Unix 操作系统下,并且大多独立于桌面环境。