Дефинирах функция във 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 за помощта получавам тази настройка на функцията.
Забележка: Публикувах това на супер потребител.