Sempre que você abre um arquivo, o vim executa uma série de verificações para determinar o idioma do arquivo e aplica o realce de sintaxe relevante; primeiro, verificando a extensão do arquivo e, em seguida, olhando dentro do próprio arquivo. Nada de novo aqui.
Quando você cria um novo arquivo, incluindo a extensão, por exemplo, o test.sql
vim destaca automaticamente a sintaxe SQL para qualquer coisa que você digitar - novamente, nada de novo aqui.
No entanto, quando você cria um novo arquivo sem uma extensão de arquivo mas contendo um shebang, por exemplo, #!/usr/bin/env python
parece ser necessário salvar o arquivo e abri-lo novamente para o vim aplicar as verificações e decidir que esse é um script python.
Minha pergunta é se existe um comando vim que aciona essas verificações, permitindo uma atualização do destaque em novos arquivos (sem extensão), evitando a necessidade de reabrir o arquivo.
Observando a documentação do vim para carregamento de sintaxe, achei que encontraria algo útil em relação à minha consulta - infelizmente não encontrei.
fonte
Respostas:
Aqui estão três maneiras diferentes de fazer isso:
:set ft=python
. O lado negativo dessa abordagem é que você não pode adicioná-lo a um atalho de teclado, pois ele funcionará apenas com um tipo de arquivo (python neste exemplo):w
+:e
O lado negativo disso é que você tem que salvar o arquivo antes de executar o comando, uma vez que recarrega o arquivo.:filetype detect
É mais longo para digitar.Você pode adicionar a segunda ou terceira opção como um atalho com
map <C-r> :filetype detect<CR>
a sua.vimrc
para permitir atualizar o arquivo comctrl
+r
fonte
:filetype detect
é exatamente o que eu estava procurando - não me importo de digitar - muito obrigado!