我尝试在当前的Emacs上安装gocode并收到当前的错误消息:
Warning (initialization): An error occurred while loading `/home/darwin/.emacs':
File error: Cannot open load file, no such file or directory, go-autocomplete
To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the `--debug-init' option to view a complete error backtrace.
当我使用--debug-init运行Emacs时,我收到了这个(它不太漂亮):
Debugger entered--Lisp error: (file-error "Cannot open load file" "no such file or directory" "go-autocomplete")
require(go-autocomplete)
eval-buffer(#<buffer *load*> nil "/home/darwin/.emacs" nil t) ; Reading at buffer position 1831
load-with-code-conversion("/home/darwin/.emacs" "/home/darwin/.emacs" t t)
load("~/.emacs" t t)
#[0 "\205\262 \306=\203\307\310Q\202; \311=\204\307\312Q\202;\313\307\314\315#\203*\316\202;\313\307\314\317#\203:\320\nB\321\202;\316\322\323\322\211#\210\322=\203a\324\325\326\307\327Q!\"\323\322\211#\210\322=\203`\210\203\243\330!\331\232\203\243\332!\211\333P\334!\203}\211\202\210\334!\203\207\202\210\314\262\203\241\335\"\203\237\336\337#\210\340\341!\210\266\f?\205\260\314\323\342\322\211#)\262\207" [init-file-user system-type delayed-warnings-list user-init-file inhibit-default-init inhibit-startup-screen ms-dos "~" "/_emacs" windows-nt "/.emacs" directory-files nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs" "^_emacs\\(\\.elc?\\)?$" (initialization "`_emacs' init file is deprecated, please use `.emacs'") "~/_emacs" t load expand-file-name "init" file-name-as-directory "/.emacs.d" file-name-extension "elc" file-name-sans-extension ".el" file-exists-p file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "default"] 7 "\n\n(fn)"]()
command-line()
normal-top-level()
我已经使用软件包管理器安装了gocode所需的Emacs(常规)自动完成版本(顺便说一下,gocode在此管理器上是不可用的)。
我的目录如果有帮助:
Emacs文件夹名为: .emacs.d
:
/.emacs.d
/auto-save-list
/elpa
go-autocomplete.el
Emacs init文件夹:
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-enabled-themes (quote (misterioso)))
'(inhibit-startup-screen t))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(when (>= emacs-major-version 24)
(require 'package)
(package-initialize)
; (add-to-list 'package-archives
; '("melpa-stable" . "http://stable.melpa.org/packages/") t)
(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa-stable" . "http://stable.melpa.org/packages/") t)
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
)
;; Update Emacs config for godoc
(setenv "PATH" "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/go/bin")
(setenv "GOPATH" "~/go")
;; calls gofmt before save
(setq exec-path (cons "/usr/local/go/bin" exec-path))
(add-to-list 'exec-path "/go/bin")
;(add-hook 'before-save-hook 'gofmt-before-save)
(defun my-go-mode-hook ()
; Call Gofmt before saving
(add-hook 'before-save-hook 'gofmt-before-save)
; Customize compile command to run go build
(if (not (string-match "go" compile-command))
(set (make-local-variable 'compile-command)
"go build -v && go test -v && go vet"))
; Godef jump key binding
(local-set-key (kbd "M-.") 'godef-jump))
(add-hook 'go-mode-hook 'my-go-mode-hook)
;; Gocode: Go aware Autocomplete
(require 'go-autocomplete)
(require 'auto-complete-config)
;; Go eldoc (via package control) REQUIRES GOCODE
(require 'go-eldoc)
(add-hook 'go-mode-hook 'go-eldoc-setup)
如果有人能帮助我弄清楚如何让gocode上班,这将是非常棒的。先感谢您。
- 将会
P.S。如果需要,我可以添加其他目录。
答案 0 :(得分:6)
.emacs.d
的根目录通常不是load-path
的一部分,并且最近版本的Emacs甚至会向用户发出警告消息,因为实际上用户是这样做的。创建一个名为lisp
或hello-world
的子文件夹,并将您的库放入其中,然后将lisp
或hello-world
目录添加到load-path
并重新启动Emacs。以下是load-path
:https://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Libraries.html
示例(放在.emacs
文件中):
(add-to-list 'load-path "/path/to/my/lisp/library")