Невозможно редактировать заголовок, не открывая фолд в Vim - PullRequest
1 голос
/ 24 мая 2009

Предположим, у вас есть курсор на закрытой складке, как на рисунке.

альтернативный текст http://dl.getdropbox.com/u/175564/foldEdit.png

Как вы можете редактировать заголовок SMALLAPPS без открытия сгиба в Vim?

1 Ответ

2 голосов
/ 24 мая 2009

Хотите отредактировать первую строку сложенного блока или строку, которая появляется при закрытии сгиба? Если это первое, я не думаю, что вы можете сделать это без открытия сгиба. Если это последнее, посмотрите на параметр 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

Альтернативой является использование метода фальцовки маркер . С его помощью вы можете ввести любую строку перед маркером сгиба, и она появится, когда она будет закрыта.

Из документов:

Маркеры в тексте говорят, где складки начало и конец. Это позволяет вам точно укажите складки. это позволит удалить и положить складывать, без риска включения неправильные линии. «Сгиб» опция обычно устанавливается так, что текст до того, как маркер появится в сложенная линия. Это позволяет дать название сгибу.

Маркеры могут иметь включенный уровень, или можно использовать совпадающие пары. Включая уровень проще, вам не нужно добавлять заканчивайте маркеры и избегайте проблем с несоответствующие пары маркеров. Пример: * * тысяча двадцать-шесть

/* global variables {{{1 */
int varA, varB;
...