Выделите всю строку в соответствии с шаблоном - PullRequest
1 голос
/ 09 апреля 2019

Я пытаюсь добраться до vim или nvim, чтобы выделить всю строку графического интерфейса, если на экране есть совпадение.

Я понятия не имею, как начать приближаться к этому или что искать.

enter image description here

Я могу получить vim для подсветки в соответствии с шаблоном, но я хочу, чтобы он выделил всю ширину графического интерфейса, как это происходит нанижняя часть экрана (черного цвета), как показано выше.

Как этого добиться?

1 Ответ

0 голосов
/ 10 апреля 2019

Насколько я знаю, невозможно выделить всю строку, кроме функции sign.В следующем примере используется значение регистра @/ для поиска последних найденных строк, и на них будет выделено выделение Search.

function! s:ToggleHighlightSearchLines()
    if !exists('s:id')
        let s:id = localtime()
        let lc = [line('.'), col('.')]
        call cursor([1, 1])
        let s:sc = &signcolumn
        let &signcolumn = 'no'
        sign define hlsLines linehl=Search
        let s:sp = 0
        while 1
            let ln = search(@/, 'W')
            if ln == 0 | break | endif
            execute 'sign place ' . s:id . ' line=' . ln . ' name=hlsLines'
            let s:sp += 1
        endwhile
        call cursor(lc)
    else
        while 0 < s:sp
            execute 'sign unplace ' . s:id
            let s:sp -= 1
        endwhile
        sign undefine hlsLines
        let &signcolumn = s:sc
        unlet s:id s:sp s:sc
    endif
endfunction
command! ToggleHLSLines call s:ToggleHighlightSearchLines()
...