5

我正在尝试按照本教程使用此代码将 emacs 设置为我的 GO IDE 。当我必须让 emacs 生成文件时,我遇到了问题

在 Emacs 中,运行 Mx update-file-autoloads,将其指向 go-mode.el 文件并告诉它生成一个 go-mode-load.el 文件。

输入文件路径(位置~/.emacs.d/go-mode/go-mode.el)时出现此错误

Opening output file: no such file or directory, /build/buildd/emacs23-23.3+1/debian/build-x/lisp/loaddefs.el

locate在这个文件上做了一个,看到我有它,但不是在上面指定的路径

$ locate loaddefs.el
/usr/share/emacs/23.3/lisp/loaddefs.el
...

如果我不得不猜测,我会说某种路径问题。我必须在某处设置路径变量吗?

我通过安装 emacsapt-get install emacs23

我在 Ubuntu 12.04

谢谢

编辑

我正在执行的获取错误的过程。

  1. M-x update-file-autoloads进入

  2. Update autoloads for file:~/.emacs.d/go-mode/go-mode.el 回车

Opening output file: no such file or directory, /build/buildd/emacs23-23.3+1/debian/build-x/lisp/loaddefs.el

4

4 回答 4

2

我遇到了同样的问题,终于让它工作了。打开您的暂存缓冲区(或任何其他空文件)并输入以下两行

(setq generated-autoload-file "~/.emacs.d/go-mode/go-mode-load.el")
(update-file-autoloads "~/.emacs.d/go-mode/go-mode.el")

然后通过将光标放在每行的 then 来评估这两行,然后键入C-x C-e以评估光标之前的行。对两条线都这样做。然后确保打开go-mode-load.el并保存缓冲区 - 显然 emacs 默认情况下不这样做。

完成此操作后,您可以继续按照http://www.honnef.co/posts/2013/03/writing_go_in_emacs/上的说明进行操作

免责声明:我确信有更好的方法可以做到这一点,而 lisp 专家会对我的回答感到尖叫。我不知道 lisp 以及如何在 emacs 中使用 lisp。我只是做了一个明智的猜测:-)

于 2013-11-25T11:18:41.753 回答
2

就在最近尝试在我的树莓派上设置 go-mode.el 时遇到了这个问题。幸运的是,我已经在我的 Mac 上成功生成了一个 go-mode-load.el 文件,并且能够查看它。

在那里我看到了这条评论:

;; To update this file, evaluate the following form
;;   (let ((generated-autoload-file buffer-file-name)) (update-file-autoloads "go-mode.el"))

所以我cd进入了我下载的目录go-mode.el,然后touch编辑了一个名为 的新文件go-mode-load.el,在 emacs 中打开它,粘贴在那行代码中,对其进行评估,C-x C-e它就像一个魅力。

编辑

在我将这些行添加到末尾之前,无法使生成的文件正常工作。在撰写本文时,我还没有花时间弄清楚为什么需要它们,但添加它们可以解决问题:

(provide 'go-mode-load)
;; Local Variables:
;; version-control: never
;; no-byte-compile: t
;; no-update-autoloads: t
;; coding: utf-8
;; End:
;;; go-mode-load.el ends here
于 2014-08-17T23:59:21.200 回答
1

(不是答案,但需要格式化) go-mode.el 中是否有“生成的自动加载文件”的本地定义?如果是这样,它将写在那里,因此您需要删除该行。


;; 更新文件自动加载文档

update-file-autoloads 是 `autoload.el' 中的一个交互式编译 Lisp 函数。

(update-file-autoloads FILE &optional SAVE-AFTER OUTFILE)

更新 FILE 的自动加载。如果前缀 arg SAVE-AFTER 不为零,也保存缓冲区。

如果 FILE 绑定generated-autoload-file' as a file-local variable, autoloads are written into that file. Otherwise, the autoloads file is determined by OUTFILE. If called interactively, prompt for OUTFILE; if called from Lisp with OUTFILE nil, use the existing value of了生成的自动加载文件'。

如果其中没有自动加载 cookie,则返回 FILE,否则返回 nil。

于 2013-08-14T22:43:12.130 回答
0

go-mode-el GitHub 网页查看实际安装说明。似乎有一些未反映在教程中的更改。

只需尝试使用 ELPA 或按照手册说明操作:

(add-to-list 'load-path "/place/where/you/put/it/")
(require 'go-mode-autoloads)
于 2014-12-08T17:08:45.880 回答