用Emacs 搭建C++开发环境实践记录

//gcc -o create create.c -lpthread  

准备工作

1.安装gun global

源码安装命令(以解压到tmp 为例):

cd ~/hzz/tmp
./configure
make
make install

GUN GLOABL是什么东东?

GNU GLOBAL是一个源代码标记系统,能够很方面的进行代码阅读和代码索引。
GNU GLOBAL以同样的方式工作在不同的环境中,如Emacs编辑器,Vi编辑器,Less viewer,Bash
shell,以及各种web浏览器等等。

使用GNU GLOBAL,在你的源代码中,你可以找到不同的对象并能够很轻松的移动它们,如函数、宏、结构、类等。这对大型项目非常有用,特别是那种包含许多子目录、许多#ifdef和很多main()函数的项目。

它类似于ctags或etag,但有两点不同:

1.独立的编辑器
2.处理定义和参考的能力

GNU GLOBAL可以运行在UNIX (POSIX) 兼容的系统,比如GNU 和 BSD。GNU
GLOBAL支持的语言很多,它自身支持 C, C++, Yacc, Java, PHP4 和汇编语言中符号的定义和引用,还通过
Exuberant Ctags 支持40余种语言的符号定义的索引。

作为GNU项目的一部分,GNU GLOBAL是免费软件,你可以自由复制,修改和重新发布该计划下的GNU GPL。

2.下载陈斌的配置
 陈斌的配置如何使用在配置库的说明中都有。
 附博客 一年成为Emacs高手(像神一样使用编辑器)

 实践过程以陈斌的配置为基础,参考以下博客进行实践
 老外的一个用ecmacs搭建c++环境(页面右边有导航)
 
3.下载一个小的c项目tinyhttpd以备使用

4. 在初始化配置文件中添加以下内容

(setq cursor-type ‘bar)
(defun open-init-file ()  
 (interactive)
 (find-file “~/.emacs.d/init.el”))  
(global-set-key (kbd “”) ‘open-init-file)

配置完后重新打开emacs 按F2应该就能自动打开该文件了,如果出现错误请阅读下边链接先了解一点语言基础
要快速了解elisp 的相关内容请参考此处

以ELPA方式安装插件

首先在 https://github.com/redguardtoo/emacs.d 按照安装说明load 到本地。按照里边说明配置好。
来一步补充修改如下,目的为减少需要自动安装插件的下载时间(天朝你懂)
在 ~/.emacs.d/lisp/init-elpa.el 中找到 (package-initialize)  在它前边贴下如下代码

(setq package-archives
    ‘((“gnu” . “http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/“)
     (“melpa” . “http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/“)))
(package-initialize) ;; You might already have this line

参考如何使用MELPA安装插件的文章 贴过来说明如下  

【Enter ↵】 (package-menu-describe-package) → Describe the package under cursor.
【i】 (package-menu-mark-install) → mark for installation.
【u】 (package-menu-mark-unmark) → unmark.
【d】 (package-menu-mark-delete) → mark for deletion (removal of a installed package).
【x】 (package-menu-execute) → for “execute” (start install/uninstall of marked items).
【r】 (package-menu-refresh) → refresh the list from server.

列表中已经显示了状态,是否已经安装了,是否为默认集成的。
(截图只显示了已安装和默认集成的,滚动会显示可以获取到的插件包)
这里写图片描述
 

emacs 中使用ggtags插件

通过以下命令查看,插件列表,如下图所示,已经安装好,直接使用。(没有安装好按上一步指示安装即可)

M-x list-packages

这里写图片描述

首先要在项目根目录执行gtags命令生成tags

cd ~/home/hzz/code/mytest/
gtags
ls G*

以上命令会看到三个文件
GTAGS: definition database
GRTAGS: reference database
GPATH: path name database

基本移动
C-M-f   //注意C--Ctrl M—Alt ,移动到下一个匹配符号处 ( ) { } 都算符号匹配处
C-M-d  //移动到上一个符号匹配处
C-M- //第三个键为空格,选中当前匹配的段
C-M-h   //选中当前函数
C-M-k   //删除当前匹配的段,例如光标放在函数开始的”{” ,执行后删除该函数
C-M-a   //光标在当前文档的所有函数定义位置切换
C-M-e  //在所有函数定义的结尾处切换

跳转
M-. //跳转到定义或引用
这里写图片描述

M-] //跳转到引用

这里写图片描述

C-c M-o //发现其他符号,在下边列出的位置中 M-n M-p 来切换

这里写图片描述

emacs 中使用speedbar插件

从Emacs 23.2开始,Speedbar也变成了Emacs自带的组件。用以下命令打开

M-x speedbar

出现一个窄而高的导航窗口,里面显示的是文件列表,点击每个文件前的 +,能展开文件内的索引。有的索引项还能够进一步展开,点击不能在展开的索引项,就能跳转到文件内对应的位置。
用鼠标用 speedbar 还是很方便的。

再次 M-x speedbar 会关闭speedbar窗口。在speedbar窗口按 q也会关闭speedbar窗口。
至于怎么使用,在speedbar窗口点右键,弹出的菜单已经够详细了。

要想让speedbar随Emacs一起启动,在启动文件里加上

(speedbar 1)

如果需要Speedbar 嵌入到EMACS 内需要安装个插件 sr-speedbar,看了以下elpa里边没有,如果列表中有最好用ELPA安装,百度一下找了个sr-speedbar

sr-speedbar安装说明
1.把上述地址的网页内容粘贴到 ~/.emacs.d/lisp/sr-speedbar.el 文件中,不是直接下载该文件哦(it’s html)
2.在init.el 中写入

;;open speedbar (require ‘sr-speedbar) (setq
speedbar-show-unknown-files t)

(setq sr-speedbar-width 30) (setq sr-speedbar-right-side nil)
(global-set-key (kbd “”) (lambda()
          (interactive) 
           (set-frame-width (selected-frame) 150)
          (sr-speedbar-toggle)))

按快捷键f3时会打开speedbar 并根据自己的请看调整主窗口的大小。
这里写图片描述
 

emacs 中使用 company-mode插件

emaacs 中这一部分没有实践太清楚,有知道的麻烦推荐一下可靠的网址

(待续)

高质量emacs博文推荐

老外的一个用ecmacs搭建c++环境(页面右边有导航)
李杀博客
子龙山人的博客(web编程)

猜你喜欢

转载自blog.csdn.net/writeeee/article/details/52478718