emacs 使用集锦
emacs 使用集锦
声明, 主要在c/c++环境中使用!
----------------------------------------
1. emacs 中 TAGS 位置设置
----------------------------------------
a)临时使用方式:
M-x visit-tags-table
b)启动Emacs时自动加载方式:
在~/.emacs文件中加入一行,设置tags-file-name变量
(setq tags-file-name "path/TAGS")
如果要一次查找多个TAGS文件,可以设置tags-table-list变量
(setq tags-table-list '("path1/TAGS" "path2/TAGS" "path3/TAGS"))
另外,对于较大又不是经常使用的TAGS,尽量放到该list的后面,避免不必要的打开
----------------------------------------
2. emacs 中缩进的设置
----------------------------------------
emacs 中 c/c++代码缩进总是不尽人意,
这是我用的方式,跟vim 中的一致了,也是我中意的格式
;; 设置c的排版方式
(add-hook `c-mode-hook `(lambda()
(c-set-style "linux")
(setq c-basic-offset 4)
(setq tab-width 4)
(hs-minor-mode t)
(modify-syntax-entry ?_ "w")
(linum-mode t)))
注释: 用的是linux 格式,但要重新设置偏移量,tab宽度才能满足要求
顺便再设上hs模式(隐藏显示模式),linum-mode(显示行号模式),并把下划杠当字符,这样会调整影响选词及跳转等功能.
----------------------------------------
3. 让emacs 滚动屏幕上的代码
----------------------------------------
(global-set-key (kbd "M-<up>") (lambda () (interactive) (scroll-up 1)))
(global-set-key (kbd "M-<down>") (lambda () (interactive) (scroll-down 1)))
注意up,down 的写法,因为M 要求后面只能跟一个字符. 其实映射成M-n, M-p 更好,使用更方便,
----------------------------------------
4. 优化rgrep 功能
----------------------------------------
rgrep 需要我们输入分词及目录, 虽然它能够取到光标下的词做默认,取当前目录为默认目录,但我们还是要敲2次回车确认,
而且它默认搜索的文件类型也不尽满意,经常需要改为*.h *.cpp 以搜索.h, .cpp 结尾的文件.
怎样才能不要输入这2个确认呢? 终于找到了方法,如下:
;; 客户化rgrep
(defun my-rgrep()
"call rgrep with default directory in c++ and h files"
(interactive)
(grep-compute-defaults)
(rgrep (grep-read-regexp) "*.[ch]*" default-directory))
;; 添加快捷键
(global-set-key (kbd "C-c r") 'my-rgrep)
从此不再需要指明搜索词,搜索的文件类型和搜索的起始目录了,甚爽! 负担小了很多!
------------------------------------------------------------------------------
5. 安装noccur 插件及iedit 插件,从此重构代码就简单了.(project 多文件重构)
安装loccur 插件, 可以立即看到本文件中对符号的使用情况,结合iedit可重构本文件
------------------------------------------------------------------------------
noccur 也需要重构以简化使用,查看其调用方式,可仿照rgrep 来简化
(defun my-occur()
"call noccur with default director"
(interactive)
(grep-compute-defaults)
(noccur-project (grep-read-regexp) 0 default-directory))
;; 添加快捷键
(global-set-key (kbd "C-c o") 'my-occur)
这样,与loccur 的快捷键 C-o 还是很搭配的!