题
让我们假设你有在关闭的折叠的光标作为图片。
替代文字http://dl.getdropbox.com/u/175564/foldEdit .PNG
你怎么可以编辑SMALLAPPS的标题,而不在Vim中打开折叠?
解决方案
你要编辑的折叠块的第一行中,或当折叠闭合时出现的字符串?如果是前者,我不认为你可以做到这一点,而无需打开折叠。如果是后者,那么就得看看折叠文本选项。它可以是任何表达。这个表达式求值来创建该字符串。
从文档:
“folftext”是个字符串选项 指定的表达式。这个 表达式进行求值,以获得 文本显示为关闭的折叠。 例如:
:set foldtext=v:folddashes.substitute(getline(v:foldstart),'/\\*\\\|\\*/\\\|{{{\\d\\=','','g')
此示出了折叠的第一行中, 以 “/ ”, “ /” 和 “{{{” 移除。 备注:使用反斜杠,以避免 一些字符进行解释 在 “:set” 命令。这是简单的 定义一个函数和调用:
:set foldtext=MyFoldText() :function MyFoldText() : let line = getline(v:foldstart) : let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g') : return v:folddashes . sub :endfunction
一个替代方案是使用标记的折叠方法。有了它,你可以折叠标志之前输入的任何字符串而当翻盖合上它就会出现。
从文档:
在文本标记告诉如果折叠 开始和结束。这可以让你 精确的定义折叠。这个 将允许删除和复制 倍,而不包括风险 错了线。在“foldtext”时 选项通常设定为使得 标记前文中显示出来 折叠线。这使得有可能 提供一个名称的褶皱。
标记可以已经包括一个电平,或 可以用一对匹配。包括 水平是比较容易,你不必添加 结束标志,并避免与问题 非匹配标记对。例如:
/* global variables {{{1 */ int varA, varB;
不隶属于 StackOverflow