Vim: Функцията за персонализирано сгъване е готова, изисква се персонализирано подчертаване

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

Забележка: Публикувах това на супер потребител.


person sixtyfootersdude    schedule 11.03.2010    source източник


Отговори (1)


Вижте този въпрос
Изглежда, че не можем да контролираме подчертаване на гънките, тъй като не е част от файла, а е оформено и поставено временно на гънките.

person asdfg    schedule 12.03.2010
comment
+1: Благодаря за линка. Това подозирах. Ще оставя този въпрос отворен за още няколко дни (дано някой има трик). Но иначе ще приема отговора ти. - person sixtyfootersdude; 12.03.2010