Esta questão não pode ser respondida de forma geral, de forma que se aplique a todos os editores de texto.
O Vim reconhece arquivos por sufixo. Isso é orientado por sua scriptologia de inicialização padrão e você pode hackear comportamentos personalizados em .vimrc
.
Por exemplo, escrevi para mim um programa em C chamado autotab
, que examina o conteúdo de um arquivo e determina as configurações shiftwidth
e tabstop
e expandtab
do Vim com base em como esse arquivo parece estar formatado .
Quando eu carrego ou recarrego um arquivo no Vim, este programa analisará o conteúdo e, em seguida, emitirá os parâmetros do Vim acima, que são interpolados em um comando set
e executados. Por exemplo, se o arquivo estiver usando um recuo de dois espaços, mas evidentemente com uma mistura de espaços e tabulações de oito espaços, o programa produzirá tabstop=8 shiftwidth=2 noexpandtab
.
Exatamente a mesma abordagem pode ser usada para escolher o realce de sintaxe. Escreva um script que examine algumas linhas de um arquivo, adivinhe o tipo e, em seguida, gere um comando :set syntax ...
.
O utilitário file
pode ser usado como base do script. O banco de dados "mágico" do programa contém heurísticas para detectar algumas linguagens de programação. Tente executar file
em vários arquivos seus e veja a saída. Você pode se surpreender com o quão bem ele identifica o conteúdo. Portanto, a estratégia pode ser: executar file
no arquivo, capturar a saída, analisá-la em vários casos e gerar os encantamentos Vim corretos. Em seguida, conecte isso em .vimrc
.
GIT repo de autotab
: link