服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 6699|回复: 1

CentOS上编译安装emacs23

[复制链接]
dirtysea 发表于 2011-10-26 13:46:44 | 显示全部楼层 |阅读模式
为了在LINUX下调试一段含中文字体的SHELL代码,然后找到了emacs,因为默认的低版本不支持中文所以准备升级。emacs23版本对于xft字体的支持更好一些,决定安装emacs23版本,
    1.得到emacs的源代码:
官方http://www.gnu.org

网上什么CVS啊麻烦!官方上找就象转迷宫!周折+折腾哦,找了半天才找到
下载地址:http://ftp.twaren.net/Unix/GNU/gnu/emacs
http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3a.tar.gz


    2.编译emacs23源码
yum -y install gtk+-devel gtk2-devel libXpm-devel libjpeg-devel giflib-devel libtiff-devel libXpm libpng-devel ncurses-devel gpm-devel dbus-devel dbus-glib-devel dbus-python GConf2-devel pkgconfig libXft-devel
yum groupinstall "X Window System"


解压后配置安装
tar xvf emacs-23.3a.tar.gz
cd emacs-23.3
./configure
make
(测试能否正常运行    src/emacs -q)
make install
(启动  emacs -q或者emacs 文件名 )
完事收工





指定参数安装:

./configure --with-xft --with-x-toolkit=gtk
执行:
    make bootstrap
进行迭代编译,这个过程可能稍长,10分钟左右。再执行:
    make
最后,执行:
make install
make clean
    安装完毕:-)。
如果指定了安装目录--prefix的话,还应该在.bashrc文件中的PATH变量加入emacs的安装目录,这样才能在终端中直接启动emacs。




 楼主| dirtysea 发表于 2012-11-27 19:26:44 | 显示全部楼层

在编写代码时,自动补齐(成员函数变量,以及……)能提高很大的效率,emacs的自动补齐方法有很多种,我参考了很多其他网友的文章,简单总结了下,希望其他网友不要怪罪我哈,呵呵,我希望把我的学习过程记录下来,能对其他网友有所帮助.以下是几种不同的方法(也可以一块用哈)
1. Emacs 自带的hippie-expand (参考的是王垠的)
hippie-expand是 Emacs 自带的功能,
把M-/ 绑定到 hippie-expand,在.emacs文件中加入
;;绑定按键
(global-set-key [(meta ?/)] 'hippie-expand)

hippie-expand 的补全方式。它是一个优先列表, hippie-expand 会优先使用表最前面的函数来补全。通常的设置是:

(setq hippie-expand-try-functions-list
'(try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-file-name-partially
try-complete-file-name
try-expand-all-abbrevs
try-expand-list
try-expand-line
try-complete-lisp-symbol-partially
try-complete-lisp-symbol))
首先使用当前的buffer补全,如果找不到,就到别的可见的窗口里寻找,
如果还找不到,那么到所有打开的buffer去找,如果还……那么到kill-ring里,
到文件名,到简称列表里,到list,…… 当前使用的匹配方式会在 echo 区域
显示.
确实是非常好用,基本上我M-/就能到达我想要的了.

2 采用etags
etags能像cscope那样,在代码里跳来跳去,比如查找函数,变量等,它还能够自动补齐代码.
1),先生成etags文件
find . /usr/include/ -name "*.c" -or -name "*.cpp" -or -name "*.hpp" -or -name "*.h" |xargs etags --members --language=c++
2).配置.emacs
(setq tags-file-name "~/TAGS")
3),使用
在emacs中,M-tab 就可以自动补齐了,不过有时候还是不是很好用.
M-. 查找一个tag,比如函数定义类型定义等。
C-u M-. 查找下一个tag的位置
M-* 回到上一次运行M-.前的光标位置。 M-TAB 自动补齐函数名。

3 采用cedet包
1)下载cedet
网址是 http://cedet.sourceforge.net/
2)编译
tar -zxf cedet-1.0pre3.tar.gz
cd cedet-1.0pre3
make
如果make不成功的话,就看看那个说明吧
3)配置
查看emacs的配置文件在哪里
whereis emacs
拷贝编译好了的cedet
cp -r cedet-1.0pre3 /usr/share/emacs/
查看是否有我们需要的那个文件
ls /usr/share/emacs/cedet-1.0pre3/common/cedet.el

配置.emacs文件,在.emacs文件中加入
;;;;;;;;;;cedet
(load-file "/usr/share/emacs/cedet-1.0pre3/common/cedet.el")

;;设置检索范围
(setq semanticdb-project-roots
(list
(expand-file-name "/")));;可以设置为项目的顶级目录

;;绑定按键,ctr+tab,以下三种,任意选择一个,我喜欢第二个
;;(global-set-key [(control tab)] 'senator-complete-symbol);
(global-set-key [(control tab)] ' senator-completion-menu-popup)
;; (global-set-key [(control tab)] 'semantic-ia-complete-symbol-menu)

4)使用
在一个未输入完成的函数上尝试下ctr+tab键
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2022-1-25 13:58 , Processed in 0.041929 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表