假设您有一个光标位于如图所示的闭合折叠处。
替代文字 http://dl.getdropbox.com/u/175564/foldEdit.png
在 Vim 中,如何在不打开折叠的情况下编辑 SMALLAPPS 的标题?
假设您有一个光标位于如图所示的闭合折叠处。
替代文字 http://dl.getdropbox.com/u/175564/foldEdit.png
在 Vim 中,如何在不打开折叠的情况下编辑 SMALLAPPS 的标题?
您要编辑折叠块的第一行,还是折叠关闭时出现的字符串?如果是前者,我认为您不打开折叠就无法做到。如果是后者,请查看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
另一种方法是使用标记折叠方法。有了它,您可以在折叠标记之前输入任何字符串,它会在折叠关闭时出现。
从文档:
文本中的标记告诉折叠开始和结束的位置。这使您可以精确地指定折叠。这将允许删除和折叠,而不会有包含错误行的风险。'foldtext' 选项通常设置为使标记之前的文本显示在折叠行中。这使得为折叠命名成为可能。
标记可以包含一个级别,或者可以使用匹配对。包含一个级别更容易,您不必添加结束标记并避免不匹配标记对的问题。例子:
/* global variables {{{1 */ int varA, varB;