【发布时间】:2023-03-15 17:35:02
【问题描述】:
我一直在保存带有以下标题的笔记文件
### - - 部分 ##-- 小节 #- 小节有没有办法自定义速度条来导航这些?现在 M-x speedbar 只是给我目录列表。到目前为止,我一直为此使用“M-x 发生 #-”。
【问题讨论】:
标签: emacs emacs-speedbar
我一直在保存带有以下标题的笔记文件
### - - 部分 ##-- 小节 #- 小节有没有办法自定义速度条来导航这些?现在 M-x speedbar 只是给我目录列表。到目前为止,我一直为此使用“M-x 发生 #-”。
【问题讨论】:
标签: emacs emacs-speedbar
您可以使用简单的派生模式和 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"))
正则表达式有点粗糙,但你明白了。如果你想让它们突出,你也可以对标题进行字体锁定。
【讨论】:
在文件的第一行添加-*- mode: outline-mode; outline-regexp: "#+" -*-(与scottfrazer 建议的(eval-after-load "speedbar" '(speedbar-add-supported-extension ".notes")) 一起),您应该已经设置好了。
但正如 event_jr 所提到的,您最好使用“.org”扩展名重命名文件并将“#”字符替换为“*”。
组织模式基本上是大纲模式的(大得多的)超集。
【讨论】: