假设你有一个光标处于闭合的折叠处,如图所示。
alt text http://dl.getdropbox.com/u/175564/foldEdit.png
如何在不打开Vim折叠的情况下编辑SMALLAPPS的标题?
答案 0 :(得分:2)
是否要编辑折叠块的第一行,或折叠折叠时出现的字符串?如果是前者,我认为如果不打开折叠,你就无法做到。如果是后者,那么请查看foldtext选项。它可以是任何表达。评估此表达式以创建此字符串。
来自文档:
'foldtext'是一个字符串选项 指定表达式。这个 表达式被评估以获得 显示封闭折叠的文本。 例如:
: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
另一种方法是使用marker折叠方法。有了它,您可以在折叠标记之前输入任何字符串,并在折叠关闭时显示。
来自文档:
文中的标记告诉折叠的位置 开始和结束。这允许你 精确指定折叠。这个 将允许删除和放置 折叠,没有包括的风险 错误的台词。 'foldtext' 选项通常设置为 标记出现之前的文本 折叠线。这使得它成为可能 给折叠命名。
标记可以包含一个级别,或者 可以使用匹配对。包括一个 级别更容易,您不必添加 结束标记并避免问题 不匹配的标记对。例如:
/* global variables {{{1 */ int varA, varB;