Vim, como recarregar o realce de sintaxe


Respostas:


95

Usar :syntax sync fromstart

Recebi essa dica de http://vim.wikia.com/wiki/Fix_syntax_highlighting

Esse artigo também sugere a criação de um mapeamento para esse comando, por exemplo, para mapear F12:

noremap <F12> <Esc>:syntax sync fromstart<CR>
inoremap <F12> <C-o>:syntax sync fromstart<CR>

Isso funciona, mas remove o sublinhado para verificação ortográfica. Alguma maneira de evitar isso?
Alec Jacobson

1
Desculpe, não sei. Eu não tenho nada para fazer a verificação ortográfica. Pode depender de seu addon específico. Se ninguém mais responder, pode valer a pena fazer uma pergunta com todas as informações relevantes.
Mike Lippert

3
Acabo usando autocmd BufEnter,InsertLeave * :syntax sync fromstartpara forçar uma sincronização de sintaxe depois de entrar em um buffer. A sincronização da sintaxe também é acionada quando há um InsertLeaveevento acontecendo.
Samuel Li

Talvez alguém ache isso útil um dia. Use filetype=shou syntax=shpara bash e goste, não bash. Levei algum tempo para descobrir isso.
quapka

Estou usando o :do Syntaxequivalente do :doautocmd Syntaxque é apenas um pouco mais curto, então você não precisa vinculá-lo (pelo menos não tenho que chamar esse comando com frequência, então eu apenas o digito). Eu o uso principalmente em alguns arquivos que contêm regexes que fazem com que o realce da sintaxe seja interrompido quando eu abro o arquivo via netrw.
Rens Tillmann

53

Tentar:

:e

Se você não tiver alterações não salvas no arquivo.

Ou:

:syn off | syn on

Crie um mapeamento para aliviar a dor, algo comonmap <F6> :Rmodel|e<CR>
holygeek

2
Parece que deve haver algum comando embutido para atualizar o realce da sintaxe. Outra coisa que parece funcionar é pular para outra parte do arquivo, como o início ou o fim, e voltar, por exemplo:gg``
Keith Pinson

2
": syntax sync fromstart" (sem as aspas) não recarregava o realce de sintaxe de tipo de arquivo em arquivos que às vezes não mostram cores de sintaxe - um problema contínuo para mim e para o Vim, por algum motivo. No entanto, ": syn off | syn on" funcionou imediatamente. ": e!" também fará esse recarregamento, mas cuidado: as alterações não salvas no seu arquivo serão perdidas!
Victoria Stuart

:syn off | syn onmuda o esquema de cores para mim, o que é irritante
naught101

12

Tentei todas as opções acima - nenhuma funcionou para mim.

A única coisa que funciona é: :filetype detect então remapei um atalho rápido :noremap <Leader>,ftd :filetype detect


9

Às vezes, a sintaxe está OK, mas tudo o que está sendo quebrado são dobras. Nesse caso, zxajuda muito.

Da documentação do VIM:

zx

Atualizar dobras: Desfaça manualmente as dobras abertas e fechadas: aplique novamente o 'nível da dobra' e faça "zv": Exibir a linha do cursor. Também força dobras de recomputação. Isso é útil ao usar 'foldexpr' e o buffer é alterado de forma que as dobras não são atualizadas adequadamente.



-1

Tentar:

:Rrefresh!

Este comando atualiza certas configurações em cache e também recarrega rails.vim .
Isso me ajuda a atualizar o destaque de sintaxe no Rails.


Isso se aplica apenasrails.vim e não é uma solução geral. Sem esse plugin, este comando não existe.
wchargin

-1

Você também pode tentar:

CTRL-L

Dos documentos VIM ( :h CTRL-L):

Limpe e redesenhe a tela. O redesenho pode acontecer mais tarde, após o processamento do tipo antes.


Ctrl-L atualiza a tela. Não faz diferença se você fez alterações no arquivo de sintaxe correspondente.
Alexis Wilke
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.