自定义自定义标题的速度栏

时间:2012-09-18 18:50:02

标签: emacs emacs-speedbar

我一直在保留带有以下标题的备注文件

###--- section
##-- subsection
#- subsubsection

有没有办法自定义speedbar来浏览这些?现在M-x speedbar只给我目录列表。到目前为止,我一直在使用“M-x出现# - ”为此目的。

2 个答案:

答案 0 :(得分:2)

您可以使用简单的派生模式和imenu。例如,假设您的笔记位于扩展名为“.notes”的文件中:

(define-derived-mode notes-mode text-mode "notes"
  "Mode for editing my notes."
  (setq imenu-generic-expression (list '(nil "^\\s-*[#]+[-]+\\s-*\\(.+\\)" 1))))

(add-to-list 'auto-mode-alist '("\\.notes" . notes-mode))

(eval-after-load "speedbar"
  '(speedbar-add-supported-extension ".notes"))

正则表达式有点粗糙,但你明白了。如果你想让它们脱颖而出,你也可以对标题进行字体锁定。

答案 1 :(得分:1)

在文件的第一行添加-*- mode: outline-mode; outline-regexp: "#+" -*-(以及scottfrazer建议的(eval-after-load "speedbar" '(speedbar-add-supported-extension ".notes"))),您应该设置。

但正如event_jr所提到的,你可能最好用“.org”扩展名重命名你的文件,并用“*”替换你的“#”字符。

组织模式基本上是轮廓模式的(更大)超集。