1

是否可以访问 require 中提到的文件,例如:

    (require 'key-chord)

当点击“key-chord”(或其他输入而不是点击)时,您会访问该文件吗?

编辑:鉴于我们要访问文件“key-chord.el”

4

3 回答 3

4

将光标放在任何需要的地方,例如“key-chord”中的“k”,然后执行M-x ffap RET RET. ffap是 的别名,它至少在 lisp 模式下find-file-at-point可以理解。require我已经ffap绑定到C-x f,因为我很少使用该键的默认绑定。

一些 Emacs 安装没有 .el 文件(只有 .elc 文件)。在 Debian/Ubuntu 中,您需要安装一个单独的软件包来获取它们(emacs- version -el、IIRC)。

于 2012-08-30T19:18:46.367 回答
1

locate-library告诉您文件名,并find-file在缓冲区中打开文件进行编辑。(find-file-read-only如果您只想检查它,您可能想要。)

(find-file (locate-library "key-chord.el" t))

你可以把它变成一个函数,像这样:

(defun find-locate-library (lib)
  "Visit the source for library LIB in a buffer."
  (let ((location (locate-library (concat lib ".el") t)))
    (if location
      (find-file location)
     (message "Could not find library %s" lib)) ))

如何将其连接到查看或编辑缓冲区是一个单独的主题。我想您可以修改 Elisp 模式以使库名称可点击,但我无法立即告诉您如何做到这一点。

感谢@Deokhwan Kim 提出的将搜索限制为仅“.el”文件的建议。

于 2012-08-30T17:23:40.503 回答
1

M-x find-library RET提示您输入库的名称,然后访问该文件。

在有效的库名称上使用 point 调用它会使其成为默认提示值。

在语句中的任何地方用 point 调用它require也会做正确的事情。

I use find-library frequently, and bind it to C-hC-l for convenience.

于 2012-08-31T04:02:17.620 回答