• emacs 配置c 和c++ 开发环境


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

         这一点很重要!!!!

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

         以下是安装后的截图

            

  • 相关阅读:
    C++关键字 inline
    MySQL之Join
    leetcode:Isomorphic Strings
    vs中常用的快捷键
    size_t 和 size_type的区别
    使用max函数计算EXCEL个税公式
    什么是数组?
    作业题:输入4个整数,找出其中最大的数。用一个函数来实现. 分别使用结构化方法和函数嵌套的方法。
    c++作业:输入两个整数,用函数求两数之和。函数外部声明有什么作用?
    Java中如果把构造方法也私有化,如何创建对象?Java的单例设计模式——饿汉式和懒汉式区别
  • 原文地址:https://www.cnblogs.com/flyingdirt/p/3399624.html
Copyright © 2020-2023  润新知