【问题标题】:customizing speedbar for custom headers为自定义标题自定义速度栏
【发布时间】:2023-03-15 17:35:02
【问题描述】:

我一直在保存带有以下标题的笔记文件

### - - 部分 ##-- 小节 #- 小节

有没有办法自定义速度条来导航这些?现在 M-x speedbar 只是给我目录列表。到目前为止,我一直为此使用“M-x 发生 #-”。

【问题讨论】:

    标签: emacs emacs-speedbar


    【解决方案1】:

    您可以使用简单的派生模式和 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"))
    

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

    【讨论】:

    • 谢谢,这行得通。我想如果我想要部分嵌套和可折叠,我需要使用 etags 之类的东西?
    • 听起来你们正准备发明 org-mode。 :)
    【解决方案2】:

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

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

    组织模式基本上是大纲模式的(大得多的)超集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 2019-01-05
      • 2011-03-10
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多