LINUX.ORG.RU

Реализовать подсветку комментариев в vim

 ,


0

1

Здравствуйте.

Есть файлы с суффиксом .ly. Подсветки синтаксиса в vim’е для данного типа файлов никакой не стоит. Я хочу чтобы комментарии у меня были другого цвета. Прошу помощи с этим.

Однострочные комментарии начинаются с символа ‘%’, для комментирования блока используются символы «%{» и «%}».

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

Ответ на: комментарий от einhander

А ничего готового нет что ли?

Может и есть. Но мне нужно только изменить подсветку комментариев, ради этого брать целый плагин – такое себе. :-)

Этот плагин не подойдёт https://github.com/martineausimon/nvim-lilypond-suite?

Не подойдёт, он «Neovim only».

Jullyfish
() автор топика

Попробуй добавить это в файл .vimrc, не забудь перезапустить vim.

" Назначь  нужную тебе клавишу вместо F10
let mapleader = "\<F10>"

" Функция включает подсветку
function! HighlightComments()
    syntax clear Comment
    match Comment /%.*$/
    syntax region Comment start="%{" end="%}"
    highlight Comment ctermfg=yellow guifg=yellow
endfunction

" Привязываем функцию к сочетанию клавиш F10 + l                                                                                                                         
nnoremap <Leader>l :call HighlightComments()<CR>

Нажми клавиши «F10» и «l» (не одновременно, последовательно).

Overlabor5491
()
Ответ на: комментарий от Overlabor5491

Попробуй добавить это в файл

Благодарю! То что надо, только чуть по-другому написал:

function! HighlightComments_ly()                                                
        syntax clear Comment                                                    
        match Comment /%.*$/                                                    
        syntax region Comment start="%{" end="%}"                               
        highlight Comment ctermfg=darkgrey                                      
endfunction                                                                     
autocmd BufRead,BufNewFile *.ly call HighlightComments_ly() 

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

Jullyfish
() автор топика
Ответ на: комментарий от d

Я как-то пытался по их инструкции подключить подсветку, но не получилось. Не смог разобраться почему, да и не особо прям нужна. Но если поделитесь как вы её подключили, буду рад!

Jullyfish
() автор топика
Ответ на: комментарий от Jullyfish

Я просто установил из репозитория vim и lilypond и подсветка .ly подхватилась точно так же, как для .c, .asm и т.д. Какой у тебя дистрибутив? Нужно найти пакет с файлом lilypond.vim (что-то вроде /usr/share/vim/vimfiles/syntax/lilypond.vim)

Вообще подсветка синтаксиса в vim включена? :syn on

d ★★★★
()
Ответ на: комментарий от Jullyfish

цвет комментариев по умолчанию голубого цвета, независимо от ctermfg.

в .vimrc твоя функция должна вызываться после colorscheme, syntax или прочих других настроек подсветки, так как он читается последовательно

BACR
()
Последнее исправление: BACR (всего исправлений: 1)
Ответ на: комментарий от Jullyfish

цвет комментариев по умолчанию голубого цвета, независимо от ctermfg. Наверное, где перекрывается

В теме он перекрывается. Применение темы происходит сильно позже BufRead/BufNewFile.

Ну и если у тебя Vim в графическом режиме (не обязательно gvim, об этом ниже напишу), вместо cterm* нужно прописывать gui*.

Открыл vim в терминале, делаю highlight Comment ctermfg=2, а оно не реагирует. Делаю highlight Comment guifg=#ff0000 — работает.

Если у тебя в синтакс-файле для *.ly есть свой алиас для комментариев типа VimCommentString для *.vim, можешь прописать его, чтобы не перекрашивать комментарии глобально для всех.

mord0d ★★★★★
()
Ответ на: комментарий от d

Какой у тебя дистрибутив?

На основном ПК Fedora. Попробовал на lubuntu это дело, там подсветка подтянулась, но крайне сомнительно выглядит. Подсвечивает только комментарии и то что окружено двойными кавычками. И ещё в паре мест непонятно по какому принципу.

Jullyfish
() автор топика
Ответ на: комментарий от mord0d

Я с этим поверхностно разобрался. Это какие-то приколы с colorscheme.

Если дать команду :colorscheme, в командной строке выводится сообщение default. Но если дать команду :colorscheme default, цветовая гамма разительно меняется, но начинают работать настройки цвета комментариев.

Меня такой вариант устраивает.

Jullyfish
() автор топика
Ответ на: комментарий от Jullyfish

Отображение цветовой схемы в общем случае может зависеть от терминала, количества цветов, цвета фона (светлый/тёмный) и того, поддерживает ли терминал только индексированные цвета, или же ещё и RGB-палитру:

set term?
set t_Co?
set bg?
set tgc?
Bass ★★★★★
()
Ответ на: комментарий от Jullyfish

Нередко сама цветовая схема имеет два варианта палитры (для bg=dark и bg=light). Хорошие примеры здесь — solarized (не поддерживает tgc, только 256-цветную аппроксимацию) и более новая solarized8 (поддерживает tgc).

Bass ★★★★★
()
Последнее исправление: Bass (всего исправлений: 2)