文档说明
“#”:表示在“管理权限”下安装:
# rpm –ivh ./epel-release-5-4.noarch.rpm
注意:
1. 在“段落”中选择缩进1个字符-对称缩进
2. 字体选择等宽的字体:如微软雅黑
3. 本版本是在CentOS上面修改,因为工作需要所以直接在Ubuntu版本上修改但是所有步骤都从新测试,不同点:
Ubuntu:lyb@daniel:~$
CentOS:[lyb@daniel:~$]
自己做区分
安装或修改过程描述 |
时间 |
记录人 |
修改了Ubuntu(参见自己当时记录的版本网上有)下的mkdir -p ~/.emacs.d/plugins为 mkdir -p ~/.emacs.d/plugins |
|
|
目录布局如下:
mkdir ~/.emacs
mkdir -p ~/.emacs.d/emacspluginss
说明:
1. .emacs: 配置文件
2. emacspluginss: 安装的插件目录
lyb@daniel:~$ sudo yum install emacs
[lyb@daniel ~]$ rpm -qa | grep emacs
emacs-common-23.1-21.el6_2.3.i686
emacs-23.1-21.el6_2.3.i686
lyb@daniel:~$ touch ~/.emacs
lyb@daniel:~$ mkdir ~/.emacs.d
lyb@daniel:~$ mkdir ~/.emacs.d/plugins
把建立的plugins加到.emacs的启动目录:
(add-to-list'load-path "~/.emacs.d/plugins")
lyb@daniel:~$tar –zxvf cedet-1.1.tar.gz
lyb@daniel:~$cp -r cedet-1.1 ~/.emacs.d/plugins/
lyb@daniel:~$cd /home/lyb/.emacs.d/plugins/cedet-1.1
lyb@daniel:~/.emacs.d/plugins/cedet-1.1$ emacs -Q -l cedet-build.el -f cedet-build
注意:一般有部分Warning,中间需要提示是否创建srecode目录,选y。看到Done后,编译完成。
在.emacs配置文件中添加如下代码:
(load-file “~/.emacs.d/plugins/cedet-1.1/common/cedet.el”)
(semantic-load-enable-excessive-code-helpers)
(global-ede-modet)
(require'semantic-ia)
(require'semantic-gcc)
(global-srecode-minor-mode1)
lyb@daniel:~$unzip ecb-2.40.zip
lyb@daniel:~$cp -r ecb-2.40 ~/.emacs.d/plugins/
在.emacs配置文件中添加如下代码:
(add-to-list 'load-path “~/.emacs.d/plugins/ecb-2.40/”)
(require 'ecb)
(ecb-activate)
启动emacs,然后编译ECB:
M-x ecb-byte-compile
如果启动emacs出现如下错误:
Warning (initialization): An error occurred while loading`/home/lyb/.emacs':
error: ECB 2.40 - Error: ECB can only be used with cedet [1.0pre6, 1.0.9]!Please install it and restart Emacs!
To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the `--debug-init' option to view a complete error backtrace.
解决方法如下:
lyb@daniel:~ $cd ~/.emacs.d/plugins/ecb-2.40
lyb@daniel:~/.emacs.d/plugins/ecb-2.40$ viecb-upgrade.el
把1146行的(1 0 4 9) 改为(1 1 4 9)
启动emacs,如果错误还存在,调整cedet和ecb代码段在.emacs中的位置
安装的cedet和ecb的布局如下查看当前目录布局
lyb@daniel:~/.emacs.d/plugins$ pwd
/home/lyb/.emacs.d/plugins
lyb@daniel:~/.emacs.d/plugins$ tree -L 1
.
├── cedet-1.1
└── ecb-2.4
lyb@daniel:~/emacsplugins$ tar -zxvfcscope-15.8a.tar.gz
lyb@daniel:~/emacsplugins$ cd cscope-15.8a/
lyb@daniel:~/emacsplugins/cscope-15.8a$./configure --prefix=/usr
lyb@daniel:~/emacsplugins/cscope-15.8a$ sudo make
lyb@daniel:~/emacsplugins/cscope-15.8a$ sudo makeinstall
在emacs中加入:
(require 'xcscope)
如果make出现”curses.hnot found”之类的错误
lyb@daniel:~/emacsplugins/cscope-15.8a$ yuminstall ncurses-devel ncurses
此时make如果还是出现问题,重新configure然后再make,或者sudo make
make后出现:
[lyb@daniel xcscope]$ tree
.
├── cscope-indexer
└── xcscope.el
到此为止cscope已经安装
l 把cscope的emacs插件放到指定目录:
lyb@daniel:~/emacsplugins/cscope-15.8a$
cp ./contrib/xcscope/xcscope.el ~/.emacs.d/plugins/
l 把cscope-indexer放到/usr/bin目录下或者加入$PATH:
lyb@daniel xcscope$ sudo cp ./cscope-indexer/usr/bin
lyb@daniel:~/emacsplugins$ tar -zxvfcolor-theme-6.6.0.tar.gz
lyb@daniel:~/emacsplugins$ cp -r color-theme-6.6.0~/.emacs.d/plugins/
(add-to-list'load-path “~/.emacs.d/plugins/color-theme-6.6.0/”)
(require 'color-theme)
(color-theme-initialize)
(color-theme-charcoal-black)
lyb@daniel:~/emacsplugins$ tar -jxvfyasnippet-0.6.1b.tar.bz2
lyb@daniel:~/emacsplugins$ cp -r yasnippet-0.6.1b~/.emacs.d/plugins/
(add-to-list'load-path “~/.emacs.d/plugins/yasnippet-0.6.1b”)
(require'yasnippet)
(yas/initialize)
(yas/load-directory“~/.emacs.d/plugins/yasnippet-0.6.1b/snippets”)
lyb@daniel:~/emacsplugins$ cp switch-window.el~/.emacs.d/plugins/
(require'switch-window)
http://cx4a.org/software/auto-complete/index.html#Latest_Stable
http://elrepo.org/linux/elrepo/el6/i386/RPMS/elrepo-release-6-4.el6.elrepo.noarch.rpm
https://github.com/brianjcj/auto-complete-clang
Ø 安装
lyb@daniel:~/emacsplugins$ tar -jxvf auto-complete-1.3.1.tar.bz2
lyb@daniel:~/emacsplugins$ cd auto-complete-1.3.1
lyb@daniel:~/emacsplugins$ make
lyb@daniel:~/emacsplugins$ cd ..
lyb@daniel:~/emacsplugins$ cp -rauto-complete-1.3.1 ~/.emacs.d/plugins/
Ø 配置
(add-to-list'load-path “~/.emacs.d/plugins/auto-complete-1.3.1”)
(require'auto-complete-config)
(add-to-list'ac-dictionary-directories “~/.emacs.d/plugins/auto-complete-1.3.1/ac-dict”)
(ac-config-default)
(global-auto-complete-mode1)
(setqac-use-menu-map t)
(setqac-auto-start 2)
(setqac-auto-show-menu 0.8)
(setq ac-dwimt)
直接yum安装找不到该包,Clang不在yum源里面,通过下面方式进行:
i. 下载
http://elrepo.org/linux/elrepo/el6/i386/RPMS/elrepo-release-6-4.el6.elrepo.noarch.rpm
ii. 安装源
lyb@daniel:~/emacsplugins$ sudorpm -Uvh elrepo-release*rpm
iii. 安装clang
lyb@daniel:~/emacsplugins$ sudo yum--enablerepo=elrepo-extras install clang
Ø 下载auto-complete-clang.el(略)
lyb@daniel:~/emacsplugins$ cpauto-complete-clang.el ~/.emacs.d/plugins/
Ø 配置
(require'auto-complete-clang)
(setqac-clang-auto-save t)
(setqac-auto-start t)
(setq ac-quick-help-delay0.5)
;; (ac-set-trigger-key“TAB”)
;; (define-keyac-mode-map [(control tab)]'auto-complete)
(define-keyac-mode-map [(control tab)]'auto-complete)
(defunmy-ac-config ()
(setq ac-clang-flags
(mapcar(lambda (item)(concat“-I” item))
(split-string
“
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../../include/c++/4.4.7
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../../include/c++/4.4.7/i686-redhat-linux
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../../include/c++/4.4.7/backward
/usr/local/include
/usr/lib/gcc/i686-redhat-linux/4.4.7/include
/usr/include
“)))
(setq-default ac-sources '(ac-source-abbrevac-source-dictionary ac-source-words-in-same-mode-buffers))
(add-hook 'emacs-lisp-mode-hook'ac-emacs-lisp-mode-setup)
;; (add-hook 'c-mode-common-hook'ac-cc-mode-setup)
(add-hook 'ruby-mode-hook'ac-ruby-mode-setup)
(add-hook 'css-mode-hook'ac-css-mode-setup)
(add-hook 'auto-complete-mode-hook'ac-common-setup)
(global-auto-complete-mode t))
(defunmy-ac-cc-mode-setup ()
(setq ac-sources (append '(ac-source-clangac-source-yasnippet) ac-sources)))
(add-hook'c-mode-common-hook 'my-ac-cc-mode-setup)
;;ac-source-gtags
(my-ac-config)
上面红色加粗的部分可通通过如下命令在任意路径下执行获得:
lyb@daniel:~/emacsplugins$ echo ““ | g++ -v -x c++-E -
输出如下,
把图中的选中的部分替换上面配置中红色标记的部分,重启emacs,完成安装。
Ø 功能图
lyb@daniel:~/emacsplugins$ cp highlight-symbol.el~/.emacs.d/plugins/
(require 'highlight-symbol)
(global-set-key[(control f3)] 'highlight-symbol-at-point)
(global-set-key[f3] 'highlight-symbol-next)
(global-set-key[(shift f3)] 'highlight-symbol-prev)
(global-set-key[(meta f3)] 'highlight-symbol-prev)
lyb@daniel:~/emacsplugins$ cp tabbar.el~/.emacs.d/plugins/
(require'tabbar)
(tabbar-mode 1)
lyb@daniel:~/emacsplugins/session/lisp$ cpsession.el ~/.emacs.d/plugins/
(require'session)
(add-hook'after-init-hook 'session-initialize)
(load “desktop”);;系统已经自带
(desktop-load-default)
(desktop-save-mode1)
(setq-defaultdesktop-load-locked-desktop t);;解决pid错误问题
lyb@daniel:~/emacsplugins/$ cd doxymacs-1.8.0/
lyb@daniel:~/emacsplugins/doxymacs-1.8.0$./configure
lyb@daniel:~/emacsplugins/doxymacs-1.8.0$ make
lyb@daniel:~/emacsplugins$cp -r doxymacs-1.8.0 ~/.emacs.d/plugins/
(add-to-list'load-path “~/.emacs.d/plugins/doxymacs-1.8.0/lisp/”)
(require'doxymacs)
(doxymacs-mode)
(defunmy-doxymacs-font-lock-hook ()
(if (or (eq major-mode 'c-mode) (eqmajor-mode 'c++-mode))
(doxymacs-font-lock)))
(add-hook'font-lock-mode-hook 'my-doxymacs-font-lock-hook)
(setqdoxymacs-doxygen-style “C++”)
(add-hook'c++-mode-common-hook 'doxymacs-mode)
(add-hook'c++-mode-common-hook 'doxymacs-mode)
lyb@daniel:~/emacsplugins$cp multi-term.el ~/.emacs.d/plugins/
(require'multi-term)
(setqmulti-term-program “/bin/bash”)
(setqmulti-term-buffer-name “term”)
(global-set-key“\C-x.” 'multi-term)
(global-set-key“\C-x,”'multi-term-dedicated-open)
lyb@daniel:~/emacsplugins$ cp eassist.el~/.emacs.d/plugins/
(require'eassist)
(defunmy-c-mode-common-hook ()
(define-key c-mode-base-map (kbd “M-o”)'eassist-switch-h-cpp)
(define-key c-mode-base-map (kbd “M-m”)'eassist-list-methods))
(add-hook'c-mode-common-hook 'my-c-mode-common-hook)
lyb@daniel:~/emacsplugins$ cp sourcepair.el~/.emacs.d/plugins/
(require'sourcepair)
(define-keyglobal-map “\C-xz” 'sourcepair-jump-to-headerfile)
(setqsourcepair-source-path '( “.” “../*” “../../*”))
(setqsourcepair-header-path '( “.” “include”“../include” “../*” “../../*”))
(setqsourcepair-recurse-ignore '( “.git” “Debug”“Release” ))
所有资源下载链接:
auto-complete-1.3.1.tar.bz2 |
auto-complete-clang.el |
c-1.8.0 |
cedet-1.1.tar.gz |
color-theme-6.6.0.tar.gz |
cscope-15.8a.tar.gz |
eassist.el |
ecb-2.40.zip |
highlight-symbol.el |
multi-term.el |
session-2.3a.tar.gz |
sourcepair.el |
switch-window.el |
tabbar.el |
yasnippet-0.6.1b.tar.bz2 |