这个emacs配置语句有什么问题吗?

Vim、Emacs配置和使用
回复
firestone
帖子: 31
注册时间: 2008-07-21 10:02

这个emacs配置语句有什么问题吗?

#1

帖子 firestone » 2011-03-18 11:50

(mapc (lambda (dir)
(semantic-add-system-include dir 'c++-mode)
(semantic-add-system-include dir 'c-mode))
include-dirs))

在我的.emacs中只要加入这句话,每次用emacs打开一个文件就出现报错 symbol's value as variable is void: warning-suppress-types

然后就是一个空的emacs出现在面前
firestone
帖子: 31
注册时间: 2008-07-21 10:02

Re: 这个emacs配置语句有什么问题吗?

#2

帖子 firestone » 2011-03-18 12:06

这是我完整的.emacs文件,问题就在最后一句话

;; 设置颜色主题
(load-file "~/.emacs.d/color-theme.el")
;(color-theme-initialize);初始化
(color-theme-charcoal-black)

(load-file "~/myEmacs/cedet-1.0/common/cedet.el")
(semantic-load-enable-code-helpers)
(semantic-load-enable-semantic-debugging-helpers)

(defconst cedet-user-include-dirs
(list ".." "../include" "../inc" "../common" "../public"
"../.." "../../include" "../../inc" "../../common" "../../public"))
(defconst cedet-sys-include-dirs
(list "~/cvsworking/qt/QtEmbedded-4.5.3-arm/mkspecs/qws/linux-arm11-g++"
"~/cvsworking/qt/QtEmbedded-4.5.3-arm/include/QtCore"
"~/cvsworking/qt/QtEmbedded-4.5.3-arm/include/QtNetwork"
"~/cvsworking/qt/QtEmbedded-4.5.3-arm/include/QtGui"
"~/cvsworking/vendor/arm11-linux/include"
"~/cvsworking/queuesystem/include"
))
(require 'semantic-c nil 'noerror)
(let ((include-dirs cedet-user-include-dirs))
(setq include-dirs (append include-dirs cedet-sys-include-dirs)))
(mapc (lambda (dir)
(semantic-add-system-include dir 'c++-mode)
(semantic-add-system-include dir 'c-mode))
include-dirs))
头像
tangboyun
帖子: 701
注册时间: 2009-07-25 1:57
联系:

Re: 这个emacs配置语句有什么问题吗?

#3

帖子 tangboyun » 2011-03-18 12:38

先别搞的太复杂
可能是你没开cedet的某个功能导致某变量没定义。先打开个cpp文件,
单独用semantic-add-system-include看看有没有问题吧。
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
firestone
帖子: 31
注册时间: 2008-07-21 10:02

Re: 这个emacs配置语句有什么问题吗?

#4

帖子 firestone » 2011-03-18 15:21

用--debug-init出的信息是

Debugger entered--Lisp error: (void-variable include-dirs)
(mapc (lambda (dir) (semantic-add-system-include dir ...) (semantic-add-system-include dir ...)) include-dirs)

好像问题是include-dirs这个变量上,但是仔细看了
(let ((include-dirs cedet-user-include-dirs))
(setq include-dirs (append include-dirs cedet-sys-include-dirs)))
(mapc (lambda (dir)
(semantic-add-system-include dir 'c++-mode)
(semantic-add-system-include dir 'c-mode))
include-dirs))

好像没有任何问题呀,
单独用semantic-add-system-include没有问题。请高手赐教
头像
tangboyun
帖子: 701
注册时间: 2009-07-25 1:57
联系:

Re: 这个emacs配置语句有什么问题吗?

#5

帖子 tangboyun » 2011-03-19 11:55

你代码也没对齐,总而言之看的太累,你这么贴代码是让别人用眼睛对括号么!!!

我觉得可能是没有在cedet的实际载入过程中添加你的变量。换成下面这段看看吧,应该能解决了。

代码: 全选

(eval-after-load "semantic-c"
  '(dolist (d (list  "~/cvsworking/qt/QtEmbedded-4.5.3-arm/mkspecs/qws/linux-arm11-g++"
                     "~/cvsworking/qt/QtEmbedded-4.5.3-arm/include/QtCore"
                     "~/cvsworking/qt/QtEmbedded-4.5.3-arm/include/QtNetwork"
                     "~/cvsworking/qt/QtEmbedded-4.5.3-arm/include/QtGui"
                     "~/cvsworking/vendor/arm11-linux/include"
                     "~/cvsworking/queuesystem/include"
                     ))
     (semantic-add-system-include d)))
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
头像
Classicning
帖子: 48
注册时间: 2007-02-13 22:10
联系:

Re: 这个emacs配置语句有什么问题吗?

#6

帖子 Classicning » 2011-09-19 12:17

貌似是和color-theme不兼容

这里有个bug描述
http://savannah.nongnu.org/bugs/?30734
回复