линия сложена? - Как проверить наличие складок в VIM - PullRequest
7 голосов
/ 01 февраля 2011

Я пишу некоторые функции свертывания, и я нахожусь в точке, где мне нужно проверить, является ли текущая строка на самом деле сгибом.

Причина этого заключается в том, что это пользовательский метод сгиба, который зависит от поиска / сопоставления определенных строк.

Например, если текущая строка свернута и выглядит следующим образом:

-FOO------------------------

Если вы делаете что-то вроде:

getline('.')

В основном вы получите FOO, так что нет никакого способа (о котором я знаю) узнать, нахожусь ли я в сгибе или нет.

Есть ли для этого вспомогательная функция?

Я бы подумал, что это должно быть что-то вроде:

is_folded('.')

Возможно, я мог бы связываться с foldtext, чтобы назначить специальный заголовок для сгиба, но я хочу избежать этого.

1 Ответ

8 голосов
/ 01 февраля 2011

С :help eval.txt

закрыто ({lnum})

Результатом является число. Если строка {lnum} находится в закрытой сгиб, результатом является номер первой строки в этом сгибе. Если строка {lnum} не находится в закрытой складке, возвращается -1.

Вы можете проверить заданную строку, если она возвращает -1 или номер строки, возможно, вы сможете реализовать свою функцию isfolded() таким образом.

Если вы ищете функцию или функцию сценария Vim, неплохо бы начать с поиска в eval.txt, который содержит много соответствующей информации.

...