Pergunta
É possível marcar um intervalo de texto no vim e alterar a cor de realce do mesmo (a vermelho) do que selecionar outro intervalo de texto e mudanças que a cor (a verde) mantendo o destaque anterior e assim por diante?
Solução
Eu acredito que o Txtfmt plugin é o que você está procurando ...
Txtfmt fornece uma espécie de capacidade de "rich text" para texto simples no Vim. O realce é conseguido através de caracteres marcadores escondidos inseridos directamente no tampão, de modo que o realce é feita persistente sem a necessidade de armazenamento de metadados para além do ficheiro.
Txtfmt é altamente configurável. As configurações padrão apoiar 8 (configurável) cores de primeiro plano, 8 (configurável) cores de fundo, e todas as combinações de atributos negrito, sublinhado e itálico (por exemplo, negrito, negrito-itálico, negrito-sublinhado, etc ...). A configuração não padrão suporta os seguintes atributos adicionais: destaque, reverter e undercurl
.Há um muito extenso arquivo de ajuda, eo autor é mais do que feliz em questões de uso de resposta ...
Outras dicas
O material básico para começar a partir de é:
:hi Green guibg=#33ff33
:syntax region Green start=/\%20l/ end=/\%30l/
O que faz:
- Definir grupo destaque 'verde' com cor de fundo verde.
- Definir região sintaxe que deve ser realçado com o grupo de destaque 'verde' começou a partir da linha nr 20 a linha nr 30.
Agora você pode escrever uma função e / ou de comando que leva texto visualmente selecionado e aplica-se um dos vários grupos de cores pré-definidas para ele. Depois de ter essa função - vinculá-lo a suas chaves: por exemplo \ g para o verde, \ r para o vermelho,
Upd:
E aqui é um pouco de vimscript:
function! HighlightRegion(color)
hi Green guibg=#77ff77
hi Red guibg=#ff7777
let l_start = line("'<")
let l_end = line("'>") + 1
execute 'syntax region '.a:color.' start=/\%'.l_start.'l/ end=/\%'.l_end.'l/'
endfunction
vnoremap <leader>g :<C-U>call HighlightRegion('Green')<CR>
vnoremap <leader>r :<C-U>call HighlightRegion('Red')<CR>
Nota:
Ele não pode reaplicar o destaque (Verde para Vermelho, por exemplo).
Há um plugin / script chamado marca:
Mark: um pequeno script para destacar várias palavras em cores diferentes simultaneamente. Por exemplo, quando você estiver navegando um arquivo grande programa, você poderia destacar algumas variáveis-chave. Isto tornará mais fácil de rastrear o código fonte.
Parece que o Mark plug-in faz o que quiser. Uma vez que você obtê-lo instalado, basta fazer uma seleção visual e pressione \ m .
Eu não estou ciente de qualquer maneira de fazer algo parecido com isso, pois exigiria o armazenamento de metadados não relacionadas com o conteúdo real do arquivo. Mesmo que seja apenas na memória enquanto Vim está funcionando, eu não sei de uma maneira de fazê-lo.
O que não significa que não há um caminho desde o meu conhecimento do Vim é limitado. Mas parece que algo Vim não faria.