Executar :setf sh
Você pode querer colocar isso no topo dos arquivos (se você não quiser shebang):
# vim:ft=sh
Portanto, no meu projeto há muitos arquivos de script bash que são originados, mas nunca executados diretamente, então eles não recebem nenhuma linha shebang e nenhum conjunto de bits de execução. O Vim as colore um pouco, mas não usa a colorização completa. Como faço para ajustar o vim para me dar todas as cores normais para esses arquivos?
EDITAR:
Sem shebang:
Comshebang:
EDIT 2:
Existe uma resposta que funciona para as alterações arquivo por arquivo abaixo, e eu irei com isso se isso for tudo que eu puder conseguir, mas o que eu realmente gostaria é modificar um arquivo de configuração ou algo mais no meu instalação vim para que eu sempre obtenha as cores "com shebang" mesmo quando não há shebang. Deve haver um arquivo em algum lugar que defina a colorização incompleta, que eu posso apenas substituir pelo arquivo que define a colorização completa.
EDIT 3:
As variáveis globais do vim definidas não são substancialmente diferentes, como visto nessas imagens (saída de :let g:
):
Eu estou meio perdido aqui.
EDIT 4:
Eu despejei todo o ambiente de uma janela com cores adequadas (à esquerda) e uma janela colorida incorreta (à direita) e os diferenciei, encontrando o seguinte:
60 b:current_syntax bash | 61 b:current_syntax conf
Então, por algum motivo, ele acha que meus arquivos fonte sem garantia são arquivos conf. Então eu preciso descobrir como combiná-los para bater em seu lugar.
Coloque
let g:is_bash = 1
no seu .vimrc
. Isso define o tipo de arquivo padrão para scripts de shell desconhecidos para bash
. Veja a explicação completa em : help ft-bash-syntax
Para aqueles curiosos sobre os internos, pelo menos na minha instalação do Vim 7.4, g:is_bash
é testado em um autocommand em $VIM/vim74/filetype.vim
, que define b:is_bash
de acordo. O arquivo de sintaxe $VIM/vim74/syntax/sh.vim
, em seguida, testa b:is_bash
para decidir como destacar o arquivo.