在 Markdown 模式下,emacs 允许 SHIFT-TAB 在内容视图(1 级)、大纲视图(所有级别)和文档视图(所有文本)之间循环。 我想让其中一个只下降两层,或者添加另一个只有两层的视图。 是否有一个自定义变量可以粘贴到 .emacs 中来实现此目的?
我没有看到通过用户自定义添加额外循环级别的方法。
应显示 2 级视图的单独命令是
C-2 M-x outline-hide-sublevels
。但是,打破循环并不方便。
一种可能性是编写
markdown-shifttab
的自定义版本,它不需要太多复制意大利面。
(defun my-markdown-shifttab (&optional arg)
"Do `markdown-shifttab' with added 2-level view."
(interactive)
(cond ((markdown-table-at-point-p)
(call-interactively #'markdown-table-backward-cell))
(t (cond ((and (eq last-command this-command)
(eq markdown-cycle-global-status 3))
;; Add extra view between "CONTENTS" and "SHOW ALL"
(setq this-command 'my-markdown-shifttab--extra)
(outline-hide-sublevels 2)
(markdown-outline-fix-visibility))
(t (when (eq last-command 'my-markdown-shifttab--extra)
;; Enter back into default cycling
(setq last-command 'my-markdown-shifttab))
(markdown-cycle t))))))