惊鸿浪子

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近在学习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文件解压后各个文件所在的组和用户,

     这一点很重要!!!!

     最后感谢网上各位大牛的参考文档!

     以下是安装后的截图

        

posted on 2013-11-02 10:03  shithappens  阅读(2761)  评论(0编辑  收藏  举报