В результате этого ответа я пытаюсь написать foldexpr
для vim, который эквивалентен foldmethod=indent
(в качестве отправной точки для дальнейшего улучшения распознавания моих пользовательских маркеров, см. Вопрос для более подробной информации).
Я пробовал это:
set foldmethod=foldexpr
set foldexpr=indent(v:lnum)
Однако, это терпит неудачу на этом простом примере HTML:
<div id="a">
<div id="b">
<div id="c">
<div id="d">
</div>
</div>
<div id="e">
</div>
</div>
</div>
Если я помещу свой ключ в строку <div id="c">
и нажму zc
, сгиб будет работать как положено и сгибает только этот div. Если я снова открою, затем поместу свой ключ в строку <div id="b">
и нажму zc
, сгиб завершится неудачей, так как <div id="e">
не сложен.
Если я переключаюсь на foldmethod=indent
, этого не происходит; второй сгиб выполняется правильно. Как я могу исправить свой foldexpr
чтобы он вел себя как foldmethod=indent
?