当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : outline不能隐藏子节点
帖子发表于 : 2009-08-05 20:43 
头像

注册: 2005-12-25 20:16
帖子: 228
送出感谢: 0 次
接收感谢: 0 次
网上东拼西凑找资料,配置起来(主要用于python文件),折叠倒能折叠,只是如果一个heading下如果有子heading,这个heading就不能折叠,保持子heading可见,你知道,一个class下有很多函数的,有时还是需要折叠起来,看手册,有hide-leaves等函数,应该就是实现这个功能,可就是不行,还请各位多多指教

配置如下:
代码:
;; outline
(defvar outline-start-hidden t "Start outline hidden")

(defun py-outline-level ()
  "This is so that `current-column` DTRT in otherwise-hid
den text"
  ;; from ada-mode.el
  (let (buffer-invisibility-spec)
    (save-excursion
      (skip-chars-forward "\t ")
      (current-column))))


(defun outline-setup (regexp)
  "Setup outline mode"
  (defvar outline-toggle-all-flag nil "toggle all flag")
  (make-variable-buffer-local 'outline-toggle-all-flag)
  (defvar cpos_save nil "current cursor position")
  (outline-minor-mode)
  (setq outline-regexp regexp)
  (setq outline-level 'py-outline-level)
  (define-key outline-minor-mode-map "\C-c\C-e" 'outline-toggle-entry)
(define-key outline-minor-mode-map "\C-c\C-a" 'outline-toggle-all)
  (if outline-start-hidden
      (progn
        (setq outline-toggle-all-flag t)
        (hide-body)))
  (defun outline-toggle-entry () (interactive)
    "Toggle outline hiding for the entry under the cursor"
    (if (progn
          (setq cpos_save (point))
          (end-of-line)
          (get-char-property (point) 'invisible))
        (progn
          (show-subtree)
          (goto-char cpos_save))
      (progn
        (hide-leaves)
        (goto-char cpos_save))))

  (defun outline-toggle-all () (interactive)
    "Toggle outline hiding for the entire file"
    (if outline-toggle-all-flag
        (progn
(setq outline-toggle-all-flag nil)
          (show-all))
      (progn
        (setq outline-toggle-all-flag t)
        (hide-body))))
)

(defun python-environment () (interactive)
  "Wrap for python stuff"
  (python-mode)
  (autoload 'python-mode "python-mode" "Python editing mode." t)
  (if (executable-find "ipython")
      (require 'ipython))
  (global-set-key "\C-xpl" 'load-ropemacs)
  ;;(setq interpreter-mode-alist (cons '("python" . python-mode)
  ;;    interpreter-mode-alist))
  (outline-setup "[^ \t]\\|[ \t]*\\(def\\|class\\|if\\|elif\\|else\\|while\\|for\\|try\\|except\\|finally|with\\)"))

(add-to-list 'interpreter-mode-alist '("python" . python-environment))


页首
 用户资料  
 
2 楼 
 文章标题 : Re: outline不能隐藏子节点
帖子发表于 : 2009-08-05 22:25 
头像

注册: 2005-12-25 20:16
帖子: 228
送出感谢: 0 次
接收感谢: 0 次
看来是文档错误(http://203.208.39.132/search?q=cache:5yKxxsd5h3gJ:www.mail-archive.com/emacs-pretest-bug%40gnu.org/msg04076.html+emacs+hide-leaves&hl=zh-CN&gl=cn&st_usg=ALhdy287yFxb7g3F6k2AKxWazw_Dy0y11A&newwindow=1&strip=1),现在的问题是如何隐藏subheadings呢?


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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