Vim: Как выделить каждую вторую строку?

0

Можно ли настроить подсветку синтаксиса vimдля выделения каждой второй строки?

octosquidopus
источник
Вы имеете в виду визуальные строки или строки файла? Если первое, Вим не поддерживает это. Если последнее, это, вероятно, можно сделать, но как вы хотите обрабатывать пустые строки?
Гептит
Файловые строки. Там нет пустых строк, так что это не имеет значения.
octosquidopus
Я извиняюсь, но единственный способ, которым я могу думать об этом, очень грязный. По сути, вам нужно определить синтаксическое правило для каждой другой строки буфера.
Гептит

Ответы:

1

Мой плагин DynamicSigns позволяет это. Смотрите помощь на:h Signs-Alternate

Кристиан Брабандт
источник
Как вы устанавливаете этот плагин? Я использую патоген и не могу его запустить.
octosquidopus
Патоген должен просто работать.
Кристиан Брабандт
Кроме того, вы можете установить zip-файл с vim.org/scripts/script.php?script_id=3965
Кристиан Брабандт,
0

Это очень грубо и грязно, и я подозреваю, что есть лучший способ сделать это, но вот что я придумал:

function! SynEvenLines()
    syn clear
    highlight clear EvenLines
    for l:i in range(2,line('$')+1,2)
        exe "syn match EvenLines '\\%" . l:i . "l.*'"
    endfor
    highlight EvenLines guibg=darkgrey ctermbg=grey
endfunction

Получив эту функцию, вы можете просто набрать:

:call SynEvenLines()

Если вы добавляете строки в буфер или выполняете другие виды редактирования, вам нужно будет снова запустить функцию.

В последней строке функции вы можете изменить цвет подсветки.

Heptite
источник