最近在学习emacs,使用emacs开发c程序,对自己所做的记录一下,以备以后查看。
很多不对的地方,欢迎指正!
1:一些常用按键解释
C:表示ctrl控制键
M:一般表示ALT键,如果没有用esc按键代替
RET:表示enter(回车)键
SPC:表示空格键
TAB:表示tab键
DEL:表示退格键(不是delete删除键应该是backspace按键)
ESC:表示escape键
2:暂时用到的一些按键
C-x:表示ctrl+x,先按下ctrl按键,再按下x键
M-x:表示alt+x,先按下alt按键,再按下x键
3:参考资料
网上有很多类似的资料,可以直接搜emacs 配置ide开发环境,就会出现很多的文章。
emacs资源很丰富的网站是emacs中文网http://emacser.com/emacs-resource.htm,里面有很多资源,也有一些大牛的博客链接。
我参考的文章如下:http://www.oschina.net/question/54100_56621
http://www.cppblog.com/hyjune/archive/2008/05/21/50653.html主要是这个文章
4:我的配置环境
ubuntu12.04 、gnu emacs 23
gnu emacs 23 是之前已经安装好的,没有的话可以去emacs官网下载最新版本,也可以直接使用apt-get install emacs安装
5:配置emacs ide 开发环境
a:emacs的配置文件
emacs的配置文件好像是必须放置在$HOME目录下,如.emacs文件和.emacs.d目录.(我猜应该是emacs自动安装后,就会在该目录下形成.emacs和.emacs.d文件)
注意$HOME是指用户权限下的,不是root用户下的。可以使用echo $HOME 查看具体的位置。
我的是在/home/ubuntu目录下的,其实就是放有Documents、Music 、Picture的目录。
如果你的$HOME目录下没有.emacs文件和.emacs.d文件夹,可以自己创建。
在.emacs.d目录下建立文件夹site-lisp文件夹,emacs的很多插件我都放在这个目录下。
b:基础配置
在.emacs文件添加
;;LOAD_PATH (add-to-list 'load-path' "~/.emacs.d/site-lisp")
Color theme
在此处http://docs.huihoo.com/homepage/shredderyin/src/emacs-lisp/color-theme.el.gz下载color-theme.el文件
将该文件放在site-lisp文件夹下
在.emacs文件添加
;;COLOR_THEME (require 'color-theme) (color-theme-classic)
显示行号
display-line-number.el文件在参考网站上下载不下来,可以直接在网上找到源代码
源代码在以下网站:http://blog.csdn.net/nhczp/article/details/3451929
然后添加在display-line-number.el文件中,并将display-line-number.el文件放置在site-lisp目录下
在.emacs文件中添加
(require 'display-line-number) (setq display-line-number-format "%3d ") (add-hook 'c-mode-hook 'display-line-number-mode) (add-hook 'c++-mode-hook 'display-line-number-mode)
session
下载session.el ,网站:http://emacs-session.sourceforge.net/ ,之后放在site-lisp的文件夹下
在.emacs文件中添加
(require 'session) (add-hook 'after-init-hook 'session-initialize) (load "desktop") (desktop-save-mode)
c:安装ecb和cedet
在emacs下读代码通常有一下几种工具,etags,ECB(emacs code browser),cscope,Xref。这几种工具也可以相互配合使用。
其中:etags是emcas自带的标准插件,注意不是ctags。Xref是的Xrefactory的免费版本,非GNU,支持C和java的跳转,自动补全插等功能,
比cedet+ECB组合速度要快,用起来也很简单,回答几个问题新建一个project,然后几个快捷键就可以满足需要了,
美中不足的是对C++支持是收费,且狂贵,这个小东西要400刀,也没找到破解的版本,写C++代码的时候还得用CEDET+ECB。
安装cscope
sudo apt-get install cscope
找到xcscope.el,找到之后将其copy到site-lisp目录下,并在.emacs文件中添加
(require 'xcscope)
以上步骤并未找到xcscope.el,可以去以下网址下载cscope:http://cscope.sourceforge.net/或者http://download.chinaunix.net/download/0002000/1900.shtml
之后,编译安装cscope,安装之后,在原先解压的文件夹下应该能找到xcscope.el,具体是解压文件夹下哪个文件夹,自己找找吧。
安装cedet
从http://cedet.sourceforge.net/下载cedet,解压到site-lisp目录下,在cedet目录下make
在.emacs文件中添加
(add-hook 'texinfo-mode-hook (lambda () (require 'sb-texinfo))) (load-file "~/.emacs.d/site-lisp/cedet-1.1/common/cedet.el") (semantic-load-enable-code-helpers) (autoload 'speedbar-frame-mode "speedbar" "Popup a speedbar frame" t) (autoload 'speedbar-get-focus "speedbar" "Jump to speedbar frame" t) (define-key-after (lookup-key global-map [menu-bar tools]) [speedbar] '("Speedbar" . speedbar-frame-mode) [calendar])
注意:如果make出现错误则执行一下代码
make clean-autoloads
make clean-all
如果遇到makeinfo 命令未找到的问题,则安装sudo apt-get install texinfo
安装ecb(主要出错的问题在这里,很多文章都没有说安装ecb需要make一下)
我是参考以下文章:http://zuiniuwang.blog.51cto.com/3709988/1156998
从http://ecb.sourceforge.net/ 下载ECB,解压到site-lisp目录下
在ecb-2.40目录下执行make
如果遇到 Byte-compiling ECB with LOADPATH= … 的问题,说明你make文件中的路径没有配置正确,ECB是依赖于CEDET的,
这时候需要修改makefile文件,来加载正确的CEDET路径。 打开Makefile文件找到51行,修改 CEDET= 这一行,路径为你cedet1.1的路径
如果遇到 : ECB 2.40 – Error: ECB can only be used with cedet [1.0pre6, 1.0.9]! Please install it and restart Emacs! 的问题。
则请注释ecb-upgrade.el的如下代码。然后在make 重新编译ECB
;; check if vedet-version is correct (when (or (not (boundp 'cedet-version)) (ecb-package-version-list< (ecb-package-version-str2list cedet-version) ecb-required-cedet-version-min) (ecb-package-version-list< ecb-required-cedet-version-max (ecb-package-version-str2list cedet-version))) (setq version-error (concat "cedet [" cedet-required-version-str-min ", " cedet-required-version-str-max "]")))
在.emacs文件中添加
(add-to-list 'load-path "~/.emacs.d/site-lisp/ecb-2.40") (load-file "~/.emacs.d/site-lisp/ecb-2.40/ecb.el") (require 'ecb) (setq ecb-auto-activate t ecb-tip-of-the-day nil ecb-tree-indent 4 ecb-windows-height 0.5 ecb-windows-width 0.20 ecb-auto-compatibility-check nil ecb-version-check nil inhibit-startup-message t) 注意我感觉括号应该是在这个位置,之前括号在0.20后面
重启Emacs
有时会出现以下问题:
Symbol's value as variable is void: stack-trace-on-error
在.emacs文件中添加(setq stack-trace-on-error t)
第一次使用ecb时会出现一些需要配置的东西:RET 是指enter键
使用以下命令M-x ,之后输入customize-option 回车,
会提示 customize variable:继续输入ecb-source-path 回车。
出现一下界面:
之后设置ecb source path 即可。
还可以设置ecb其他的属性。我主要设置了以下两个:
1:ECB默认是不支持鼠标响应的,需作如下设置:
打开emacs中的菜单 ECB->Preferences->Most important...,
找到Ecb Primary Secondary Mouse Buttons:并点击Show Value,
选择第三个选项:Primary:mouse-1,secondary:mouse-2
保存选项为以后所用(即点击state,选择save for future sessions)
2:打开emacs中的菜单 ECB->Preferences->Directorys
找到ECB use speedbar instead native tree buffer,点击后面的三角形,选择for directory,然后保存为以后使用。
这一步很重要,能够让你工作目录的文件夹以树形结构打开并显示 。
3:以下是一些重要命令
在emacs执行M-x ecb-byte-complie编译,可以加快ECB运行速度
M-x ecb-show-help看在线帮助
M-x customize-option RET ecb-source-path RET设置源码目录
M-x ecb-activate 启动ecb
4:总结一下
我感觉看官网的文档也许是最好的一种方法,当然其他的文章也很重要。
但是官网的资料应该更准确,也比较详细,会较少很多错误的操作。看其他人的文档,其实有时候不太了解每一步都是啥意思。
看来以后得好好学习英语了。
有的时候步骤对了,但是还是出错,这时候该看看文件的权限了,所属用户和用户组,如ecb、cedet、各个el文件解压后各个文件所在的组和用户,
这一点很重要!!!!
最后感谢网上各位大牛的参考文档!
以下是安装后的截图