//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 的相关内容请参考此处
首先在 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.
列表中已经显示了状态,是否已经安装了,是否为默认集成的。
(截图只显示了已安装和默认集成的,滚动会显示可以获取到的插件包)
通过以下命令查看,插件列表,如下图所示,已经安装好,直接使用。(没有安装好按上一步指示安装即可)
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-] //跳转到引用
C-c M-o //发现其他符号,在下边列出的位置中 M-n M-p 来切换
从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 并根据自己的请看调整主窗口的大小。
emaacs 中这一部分没有实践太清楚,有知道的麻烦推荐一下可靠的网址
(待续)
老外的一个用ecmacs搭建c++环境(页面右边有导航)
李杀博客
子龙山人的博客(web编程)