我想在 Emacs 中编辑一个大而多毛的 YAML 文件。缩进暗示文件结构:如果行 A 缩进十个空格,则 A 开始一个节,该节包含缩进十个以上空格的每个后续行。这是一个相当普遍的约定,远远超出 YAML 的使用范围。
我真正想要的是具有尊重这种结构的定义的 emacs 模式。例如:
- 我想
forward-sexp
跳过一个 sexp,其中一个 sexp 是由缩进而不是通过匹配的括号对来暗示的。同样,我希望有其他导航命令可以移动到当前部分结束后的行,移动到当前部分的下一个兄弟部分,依此类推。 - 我希望有一个命令来折叠当前部分或除当前部分之外的所有部分,类似于大纲模式可以折叠当前大纲部分的方式,但部分由缩进定义。
- 我希望模式行显示关于我所在部分的有用信息,正如缩进所暗示的那样。
- 我希望有一个选项可以自动突出显示当前行的所有祖先行。
- 其他我没有想到的。
我看过yaml-mode
,但它没有做任何有用的事情。有几个人建议我尝试 Python 模式,但它不能很好地用于此目的。
通用缩进线模式似乎是很久以前有人会写的那种东西,但如果它存在,我找不到它。或者也许有一些方法可以outline-mode
按照我想要的方式工作?
感谢您的任何建议。