我有一个我试图模仿的编辑器,它有一些非常好的功能.编辑器的一个功能是隐藏文件的行(类似于折叠但没有装饰),并仅对那些仍然可见的行应用命令操作.隐藏的线条可以回来.
例如,用户看到
Smurf Apple Bubble Tree Dog
用户说show-non-matching-lines(SNML)e
Smurf Dog
用户运行命令paste-after-line(PAL),然后是令牌,$ say和gets
Smurf$ Dog$
用户说show-all-lines(SAL)
Smurf$ Apple Bubble Tree Dog$
我知道这在VIM中是可行的,但我不知道如何存储每行属性而不需要以某种方式修改行.请按照正确的方向或思路来推动我......
更新:使用
:set foldtext=MyFoldingFunction
我可以在以下变量的帮助下操纵文本的折叠方式
v:foldstart Line num of 1st folded line v:foldend Line num of last folded line
我想在应用函数时我必须枚举所有的折叠,因为我正在应用文本格式化并弄清楚是否折叠了一条线.我真的想要一种在vim中存储每行属性的方法...我想我在这里的黑暗角落里.
folddoopen
做你想要的; 它在不属于闭合折叠的每一行上执行一些命令.要附加$
到当前未折叠的每一行,您可以执行此操作
:foldd norm A$
见:h folddoopen
和:h folddocclosed
.它没有完全"隐藏"折叠文本,你仍然可以看到折叠标记,但它非常接近.