Простая подсветка документов в Vim

378
Ярослав Рахматуллин

Я ищу аргумент filetype =, который будет форматировать или окрашивать конструкции документа, такие как списки, заголовки и подзаголовки.

В частности, я хочу, чтобы плагин filetype (или плагин синтаксиса) интерпретировал эти форматы:

заголовок ======  Sub ---  Sub2 ----   [*] му [*] фу [*] бар 
1
Это формат, который вы придумали, или уже существующий? Если он уже существует, возможно, у него уже есть плагин для Vim; просто поищите в http://www.vim.org/scripts/index.php название языка разметки. Если нет, вы, вероятно, можете взять существующий язык (например, Markdown) и довольно легко адаптировать его плагин. echristopherson 12 лет назад 1
@echristopherson Я ищу "уценку". Спасибо. Ярослав Рахматуллин 12 лет назад 0
Тогда вы можете просто `: установить ft = markdown`. Однако `[*]` не является частью собственно Markdown; Вы можете использовать `+` или `-` или` * `. echristopherson 12 лет назад 0

2 ответа на вопрос

1
Ярослав Рахматуллин

Достаточно уценки или применения основных стилей и форматирования к текстовым документам.

-1
embedded.kyle

Что вы, вероятно, хотите, это использовать подсветку синтаксиса .

Проверьте плагин vbnet.vim, чтобы увидеть более сложный пример файла синтаксиса, чем показано в руководстве. Вам нужно будет создать собственный файл синтаксиса для обработки пользовательских форматов, отображаемых в вашем вопросе. Это можно сделать, установив различные keyword, match, clusterи regionгруппы, чтобы получить то, что вы хотите. Примеры того, как настроить каждую из этих групп, можно найти в плагине vbnet.vim.

После того как вы написали свой собственный файл синтаксиса, присвойте этим группам синтаксиса имя, как показано в последней строке vbnet.vim:

let b:current_syntax = "vbnet" 

И в вашем .vimrc используйте autocmdдля включения подсветки конкретного синтаксиса для определенного расширения файла:

autocmd BufNewFile,BufRead *.vb set ft=vbnet 

Отрегулируйте выделение различных групп в файле цветов.

Разве не все .net вещи C #? Почему я не могу просто использовать файл синтаксиса C # и использовать: set syntax = c # (или даже позволить ему автоматически определять его)? Я знаю, что хочу использовать подсветку синтаксиса, но не для Visual Basic, потому что я могу догадаться, что они не используют заголовки и списки, как я _ спрашивал в вопросе_. Все, что я хотел, это название формата. Ярослав Рахматуллин 12 лет назад 0
Я думаю, что идея состояла в том, чтобы просто использовать vbnet.vim, чтобы начать создавать новый файл синтаксиса. echristopherson 12 лет назад 1
@ Ярослав Рахматуллин .NET - это фреймворк, не зависящий от языка. Но это ни здесь, ни там. Примеры форматов, которые вы задали в своем вопросе, не являются частью какого-либо стандартного типа файла. То, что я предоставил, было учебным пособием о том, как настроить подсветку синтаксиса _custom_ и _example_ более сложного файла синтаксиса, чтобы понять, как написать свой собственный. Эхристоферсон прав, это подразумевалось только как отправная точка. Извините, если это не ясно. embedded.kyle 12 лет назад 0
Markdown является частью пакета vim моего дистрибутива. Я не знаю синтаксис, следовательно, неверные [*] элементы списка. Заголовки правильные, жесткие. Спасибо за Ваш ответ. Ярослав Рахматуллин 12 лет назад 0