我今天打开了emacs,当我开始输入#include
时出现错误:
这只有在我开始输入时才会发生。起初我以为它与我的~/.emacs
文件有关,所以我打开它并评论某些内容。最后我发现当我评论下面一行时,问题就消失了:
(ac-config-default)
我在我的lisp文件中为我的编辑器使用yasnippet
和auto-complete
个包。使用auto-complete
时,问题似乎就是以上这一行。到目前为止,这是~/.emacs
的完整脚本:
(require 'cc-mode)
(load (expand-file-name "~/quicklisp/slime-helper.el"))
;; Replace "sbcl" with the path to your implementation
(setq inferior-lisp-program "sbcl")
(setq-default c-basic-offset 4 c-default-style "linux")
(setq-default tab-width 4 indent-tabs-mode t)
(define-key c-mode-base-map (kbd "RET") 'newline-and-indent)
; start package.el with emacs
(require 'package)
; add MELPA to repository list
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
; initialize package.el
(package-initialize)
; start auto-complete with emacs
(require 'auto-complete)
; do default config for auto config
(require 'auto-complete-config)
; THIS LINE IS THE PROBLEM:
(ac-config-default)
我在这里做错了吗?我可能忘了做什么?
答案 0 :(得分:1)
首先尝试以管理员身份运行emacs并查看问题是否消失,我在Windows之前遇到了与权限问题相关的问题。
错误几乎肯定是由C的gtags自动完成源引起的。
如果您不使用gtags,则可以通过从自动完成中删除源来解决问题。
(add-hook 'c-mode-common-hook
(lambda () (remove-from-list 'ac-sources 'ac-source-gtags)) t t)
不是一个完美的解决方案,但可能是一个解决方案。