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


0

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


Вы имеете в виду визуальные строки или строки файла? Если первое, Вим не поддерживает это. Если последнее, это, вероятно, можно сделать, но как вы хотите обрабатывать пустые строки?
Гептит

Файловые строки. Там нет пустых строк, так что это не имеет значения.
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()

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.