很久以前有一个编辑器叫MultiEdit。它有一个我在所有强大的 VIM 中都找不到的功能。在 MultiEdit 中,我可以按一些热键,如果我只能在当前文件中看到所有函数的第一行(让它成为 C 源代码),它会显示类似目录(又名压缩模式,又名大纲)的内容。然后我可以将光标移动到我需要的功能上,按回车后,模式将切换到正常状态,我将处于我需要的功能中。对于喜欢将许多功能放在一个文件中的人来说非常有用。这个功能使用起来非常简单:一个配置选项用于输入正则表达式以选择标题行,一个热键用于模式切换。
VIM 有折叠功能。但这是不同的。折叠隐藏部分文件并显示折叠线指示器。为目录显示指定要在折叠中隐藏的内容要困难得多:您需要从标题行开始折叠并在下一个标题行之前结束。这比选择标题的简单正则表达式更复杂。
我非常想要这个功能,我什至编写了VIM 宏来模拟这种 MultiEdit 行为,尽管我不太了解 VIM。我写它的部分原因是学习一门新语言和编写宏比弄清楚 VIM 折叠模块的复杂性更容易。不幸的是,升级 VIM 后,这个宏现在不起作用(无限循环?)。我很久以前就写过它,我对VIM 所知道的一点点都被遗忘了,我现在无法修复它。(编辑:我已经修复了我的脚本。感谢@romainl 的链接)。
我的问题是如何在 VIM 中显示这个目录?