Sintaxe personalizada simples no vim [duplicado]

-1

Eu gostaria que os arquivos com .vm extension vim fossem:

  • cor em vermelho todas as palavras entre dois carrapatos, como 'this' ,
  • cor em amarelo que é entre dois dólares, como $this is in yellow$ ,
  • e colore em verde todas as palavras entre # e o final da linha.
por Nisba 29.09.2016 / 17:12

1 resposta

2

Script de sintaxe

Crie um arquivo ~/.vim/syntax/vm.vim com o seguinte conteúdo:

" Quit when a syntax file was already loaded.
if exists('b:current_syntax') | finish|  endif

syntax match vmBackticks "'\zs[^']\+\ze'"
syntax match vmDollars "\$\zs[^$]\+\ze\$"
syntax match vmComment "#.*$"

hi def link vmBackticks Identifier
hi def link vmDollars Statement
hi def link vmComment Comment

let b:current_syntax = 'vm'

Se você quiser incluir os backticks / dollars no destaque, basta soltar os \zs e \ze .

Isso corresponde aos três elementos de sintaxe e fornece cores padrão. Geralmente, não são definidas cores explícitas, mas, em vez disso, são vinculadas ao grupo de destaque definido pelo seu colorscheme. Você pode listar todos via :hi . Para ajustes, leia :help :syntax e :help usr_44.txt e dê uma olhada nos scripts de sintaxe que acompanham o Vim.

Detecção de tipo de arquivo

Até agora, você precisa manualmente :set syntax=vm para ativo. Para fazer isso automaticamente, você tem que ensinar ao Vim sobre o seu novo filetype .

Crie um arquivo ~/.vim/ftdetect/vm.vim com o seguinte conteúdo:

autocmd BufNewFile,BufRead *.vm setf vm

Isso pressupõe que os arquivos possam ser identificados por meio do nome do arquivo (cp. :help autocmd-patterns ). Você também pode detectar com base no caminho (local do arquivo) ou até mesmo no conteúdo. :help new-filetype tem detalhes.

    
por 30.09.2016 / 11:16