Отступ сгиба текста - PullRequest
       31

Отступ сгиба текста

3 голосов
/ 13 мая 2011

Когда вы раскрываете вложенные уровни вашего кода, сложенный текст во вложенном коде не имеет отступов.Он начинается в начале строки с + вместо начала с отступом.

Знаете ли вы, как его изменить?

illustrating picture

Ответы [ 2 ]

6 голосов
/ 13 мая 2011

Если вы хотите, чтобы текст сгиба был с отступом на том же уровне, что и первая строка сгиба, вам нужно добавить уровень отступа к тексту сгиба:

function! MyFoldText()
    let indent_level = indent(v:foldstart)
    let indent = repeat(' ',indent_level)
    ...
    ...   
    return indent . txt
endfunction

Здесь я предполагаю, чтоСтрока txt - это ваш существующий сложный текст, поэтому все, что вам нужно сделать, это добавить его в конец indent.

Но я не уверен, что именно этого вы хотите достичь.

РЕДАКТИРОВАТЬ:

Теперь я видел вашу фотографию, я не уверен, что это то, что вы хотите.Вы можете попробовать удалить начальные пробелы перед добавлением к +.Таким образом, нужный вам текст будет выглядеть как indent . '+' . txt.

Может быть.

1 голос
/ 13 мая 2011

Ага

Возможно, вы захотите закомментировать эту функцию в вашем .vimrc:

set foldtext=MyFoldText()
set fillchars=fold:_

Это то, что заставляет ваш текст сгиба появляться не по умолчанию, используя функцию:

function! MyFoldText()
  " setting fold text
  let nl = v:foldend - v:foldstart + 1
  let comment = substitute(getline(v:foldstart),"^ *\" *","",1)
  let linetext = substitute(getline(v:foldstart+1),"^ *","",1)
  let txt = '+ ' . comment . ': ' . nl .  ' ' . v:foldstart . '                                                                                                                                                                  '
  return txt
endfunction

Как это бывает, мне очень нравится эта функция, но, конечно, de gustibus ...

...