Я определил функцию в vim для правильного отступа. Т.е. так они выглядят так:
разложенном
this is text
also text
indented text
indented text
not indented text
в сложенном виде с функцией по умолчанию
this is text
also text
+-- 2 lines: indented text ----------------------------
not indented text
свернуто с моей новой функцией
this is text
also text
++- 2 lines: indented text ----------------------------
not indented text
Единственная проблема заключается в том, что подсветка по-прежнему выглядит так:
свернуто с моей новой функцией (выделение показано тегом)
this is text
also text
<hi> ++- 2 lines: indented text ----------------------------</hi>
not indented text
Я бы хотел, чтобы подсветка начиналась с ++, а не с начала строки. Я посмотрел в руководстве vim, но не смог найти ничего подобного. Одним из таких решений, которое я нашел, было сделать фон черным (так же, как мой фон).
highlight Folded ctermbg=black ctermfg=white cterm=bold
Но это делает складки менее заметными.
Я пробовал несколько вариантов:
syn keyword Folded lines
syn region Folded ...
Но я думаю, что сгибы выбираются по-другому, и я не могу придумать способ переопределить подсветку по умолчанию. Кто-нибудь может предложить предложение?
Кстати, моя функция состоит в том, чтобы делать отступы:
set foldmethod=indent
function! MyFoldText()
let lines = 1 + v:foldend - v:foldstart
let ind = indent(v:foldstart)
let spaces = ''
let i = 0
while i < ind
let i = i+1
let spaces = spaces . ' '
endwhile
let linestxt = 'lines'
if lines == 1
linestxt = 'line'
endif
return spaces . '+' . v:folddashes . ' '. lines . ' ' . linestxt . ': ' . getline(v:foldstaendfunction
endfunction
au BufWinEnter,BufRead,BufNewFile * set foldtext=MyFoldText()
Кстати, спасибо njd за помощь в настройке этой функции.
Примечание: я выложил это на супер пользователя .