您的位置:首页 > 编程语言

Emacs 编写代码 折叠与展开

2011-11-05 21:15 239 查看

参考 Emacs中文网


6.4 代码折叠

6.4.1 semantic-tag-folding

从我开始用emacs开始就听大虾们说hs-minor-mode可以实现代码折叠,所以我的.emacs里一直把hs-minor-mode打开的,可是用了5年之后我发现还是不习惯它的按键,另外也不是很喜欢它显示的样子,5年来Hide/Show这个菜单对我来说基本上是个摆设。

我期待像eclipse那样可以通过鼠标在直接点击就可以打开和折叠代码,这个功能在cedet也实现了(可惜这么长时间一直没发现它),就是semantic-tag-folding.el(也在cedet的contrib目录下)。  

(require 'semantic-tag-folding nil 'noerror)
(global-semantic-tag-folding-mode 1)


只要用鼠标点击左侧的小三角图标就可以打开或折叠代码了。箭头向下的空心三角表示这段代码可以被折叠,箭头向右的实心三角表示这段代码被打折过了。

为了方便键盘操作,我把按键绑定到了[C-c , -]和[C-c , =]上(绑定这么复杂的

按键主要是为了和senator兼容,后面会讲到senator实现代码折叠): 

(define-key semantic-tag-folding-mode-map (kbd "C-c , -") 'semantic-tag-folding-fold-block)
(define-key semantic-tag-folding-mode-map (kbd "C-c , =") 'semantic-tag-folding-show-block)

同时它还提供了两个函数可以同时打开和折叠整个buffer的所有代码,分别是

semantic-tag-folding-fold-all和semantic-tag-folding-show-all,我把它们

绑定到了[C-c . -]和[C-c . =]上:  

;; 整个buffer所有函数折叠与展开
(define-key semantic-tag-folding-mode-map (kbd "C-c . -") 'semantic-tag-folding-fold-all)
(define-key semantic-tag-folding-mode-map (kbd "C-c . =") 'semantic-tag-folding-show-all)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  emacs buffer eclipse