当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题已解决]emacs中html代码的隐藏和折叠
帖子发表于 : 2006-07-28 8:20 

注册: 2005-10-23 23:31
帖子: 32
送出感谢: 0 次
接收感谢: 0 次
在网上找了很多文章和配置,都不能顺利实现html中的代码隐藏.

有用过folding.el,hs-troggle-hiding.但都激活这些功能,却没有一点效果

请懂的给点提示,谢谢了~~~~

还有,我就想用emacs,把它用好,用精.如果不用的就不要再叫我换工具了 :)


最后由 Neate 编辑于 2006-08-24 8:49,总共编辑了 2 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2006-07-31 10:53 

注册: 2006-05-10 9:46
帖子: 99
送出感谢: 0 次
接收感谢: 0 次
zfap


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2006-07-31 14:02 

注册: 2006-03-19 11:39
帖子: 750
送出感谢: 0 次
接收感谢: 7
M-x outline-minor-mode

开启 outline 辅模式 ( M-x outline-mode 是主模式,不要用它)


M-x hide-body
全部折叠

M-x show-all
全部展开


M-x hide-subtree
M-x show-subtree

对当前子节点进行折叠隐藏操作


其它的命令也多是以 hide 或者 show 起始的, 用TAB 补全,看看有哪些命令,自己试一下就知道了,常用的绑定一下就是


C-h r
Commands for Human Languages
* Outline Mode::
这里面的自己看看吧。。。


最后由 kardinal 编辑于 2006-07-31 14:12,总共编辑了 1 次

页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2006-07-31 14:05 

注册: 2006-03-19 11:39
帖子: 750
送出感谢: 0 次
接收感谢: 7
folding.el 似乎是以注释折叠的??? 反正我记得有一个以注释折叠的,这种不要用,对代码风格的要求比较高。。。自己写都很难达到要求,别人的就不要指望了


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2006-07-31 14:32 

注册: 2006-03-19 11:39
帖子: 750
送出感谢: 0 次
接收感谢: 7
王垠的主页上有说明啊。
下载一个 fold.el 文件,放到 load-path 路径里
可以在配置文件中自己定义
(add-to-list 'load-path "路径")


把下面代码加到 .emacs 文件中
注释我加的。。。基本瞎猜,如有雷同,纯属巧合。。。

代码:
;;加载 fold.el 扩展;;好像需要手动加载  ;;通过 M-x load-library 命令
(load-library  "folding")
;; 变量赋值    应该下面条件控制的触发,所以多半要通过手动加载的。。。不太清楚,楼主试试。。。
(declare (special fold-fold-on-startup
        fold-keys-already-setup
        ))

;; 启动时开启 fold 模式   
(setq fold-fold-on-startup t)
;; 向 fold 模式中添加 find-file 接口? 
(folding-mode-add-find-file-hook)

;; 定义一个函数,如果开启了 fold 模式,设定下面的键绑定;;条件控制
(setq fold-keys-already-setup nil)
(add-hook 'folding-mode-hook
     (function (lambda()
            (unless fold-keys-already-setup
         (setq fold-keys-already-setup t)

                        ;;定义按键序列前缀变量  ;见下面
         (define-prefix-command 'ctl-f-folding-mode-prefix)
                        ;; 命令的键绑定;;上面定义的按键序列前缀,加双引号括起来的绑  ;一个单引号,引用的是命令
         (define-key 'ctl-f-folding-mode-prefix "f" 'fold-fold-region)
         (define-key  'ctl-f-folding-mode-prefix "e" 'fold-enter)
         (define-key 'ctl-f-folding-mode-prefix "x" 'fold-exit)
         (define-key  'ctl-f-folding-mode-prefix "b" 'fold-whole-buffer)
         (define-key 'ctl-f-folding-mode-prefix "o" 'fold-open-buffer)
         (define-key 'ctl-f-folding-mode-prefix "h" 'fold-hide)
         (define-key 'ctl-f-folding-mode-prefix "s" 'fold-show)
         (define-key 'ctl-f-folding-mode-prefix "t" 'fold-top-level)
         (define-key 'ctl-f-folding-mode-prefix "f" 'fold-fold-region)
         )
                 ;;定义序列前缀使用的组合键  ;;给刚才定义的前缀变量赋值
                  (local-set-key "\C-f" 'ctl-f-folding-mode-prefix))))

;;不同主模式下,折叠时使用的关键词。使用 “元组”定义,第一个值是起始判断,第二个是结束判断,第三个是折叠起始点。
;;好像Html要用这种注释  <!-- {注释} --> 才能够折叠,并与普通注释相区别……没用过,楼主自己试试吧
(fold-add-to-marks-list 'sgml-mode
         "<!-- {"
          "<!-- } -->" " --> ")
(fold-add-to-marks-list 'c-mode "/* <" "/* > */" "*/")
(fold-add-to-marks-list 'c++-mode
         "//<" "//>" "")
(fold-add-to-marks-list 'LaTeX-mode "%%% {{{" "%%% }}}" " ")
(fold-add-to-marks-list 'latex2e-mode "%%% {{{" "%%% }}}" " ")
(fold-add-to-marks-list 'latex-mode "%%%% {{{" "%%%% }}}" " ")
(fold-add-to-marks-list 'BibTeX-mode "%%% {{{" "%%% }}}" " ")
(fold-add-to-marks-list 'lisp-mode ";;; {" ";;; }" "")
(fold-add-to-marks-list 'lex-mode" /* {{{ " " /* }}} */ " "*/")
(fold-add-to-marks-list 'html-mode "<!-- { " "<!-- } -->" "-->")
(fold-add-to-marks-list 'shell-script-mode "# {{{" "# }}}" nil)
(fold-add-to-marks-list 'sh-mode "# {{{ " "# }}}" nil)



不好意思,就扫过一眼Elisp的教程,不懂的说。。。说不定哪天我学会了的话,就能搞清楚了。。。不过恐怕楼主等不到那阵了 :lol:


最后由 kardinal 编辑于 2006-07-31 18:45,总共编辑了 1 次

页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2006-07-31 15:03 

注册: 2006-03-19 11:39
帖子: 750
送出感谢: 0 次
接收感谢: 7
兄弟看看我写的 <Emacs入门指南> ……当然,里面暂时还没有这部分内容,我会考虑的。。

最好给提点意见,越多越好。。。除了截图之外。。。


页首
 用户资料  
 
7 楼 
 文章标题 : 先谢谢了
帖子发表于 : 2006-08-03 17:30 

注册: 2005-10-23 23:31
帖子: 32
送出感谢: 0 次
接收感谢: 0 次
现在在外地,没有办法实现各位兄弟的方法
先谢一个先
过两天回学校在试
2楼说的
bigapple 写道:
zfap

是什么东东?

kardinal
关于folding.el,我就是在王垠大哥那看到的,试了没有用,所以才问的....
关于
引用:
M-x outline-minor-mode

他对其他的语言也适用么?

我用的EMACS是23版的.用王垠的那个FOLDING会出错.所以我在EMACS官网上下了一个.但始终没有效果.只是提示功能被激活而已

M-x outline-minor-mode
我回去会去试试的 :D


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2006-08-03 18:36 

注册: 2006-03-19 11:39
帖子: 750
送出感谢: 0 次
接收感谢: 7
folding.el 那个我试过了,Emacs23也可以用,不过对代码风格的要求有点太变态了……

我下载了王垠那个页面,源码可以使用 folding.el 折叠,但是我自己写的,死活不行……

顺便说一下,folding的折叠是定义两种特殊格式的注释,例如

<!-- { xxxxxx -->






<!-- } -->


反正极端的不好用……


outline 对多数语言都是适用的吧,特别是具有嵌套结构的语言……看了下它的源文件,好像是根据正则表达式(通常根据括号)查找subtree……猜测……看不懂的说 :lol:


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2006-08-17 20:28 

注册: 2005-10-23 23:31
帖子: 32
送出感谢: 0 次
接收感谢: 0 次
好久没有上网了.

呵呵,学校这几天网络中心迁移,所以不能上网,现在才来

现在还没有时间学elips语言,所以也就没有研究它的代码.

谢谢 kardinal 兄的方法,很成功!!!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译