Defina a sintaxe padrão como um tipo de arquivo diferente no Sublime Text 2

731

Como definir um tipo de arquivo padrão para uma determinada extensão de arquivo no Sublime Text 2? Especificamente, quero ter os arquivos * .cfg como padrão, destacando a sintaxe Ini, mas não consigo descobrir como eu poderia criar essa configuração personalizada.

keiththomps
fonte

Respostas:

1597

Na versão atual do Sublime Text 2 (Build: 2139), você pode definir a sintaxe para todos os arquivos de uma determinada extensão de arquivo usando uma opção na barra de menus. Abra um arquivo com a extensão que pretende definir um padrão para e navegar através dos seguintes menus: View -> Syntax -> Open all with current extension as... ->[your syntax choice].

Atualizado 28/06/2012: As compilações recentes do Sublime Text 2 (pelo menos desde a Build 2181) permitiram que a sintaxe fosse definida clicando no tipo de sintaxe atual no canto inferior direito da janela. Isso abrirá o menu de seleção de sintaxe com a opção Open all with current extension as...no topo do menu.

Atualizado 19/04/2016: A partir de agora, isso também funciona para o texto sublime 3.

Colin R
fonte
2
Você tentou Open all with current extension as...ou apenas definiu a sintaxe através de uma opção no Syntaxmenu?
Colin R:
Confirmado. Você precisa reiniciar o Sublime para que as alterações ocorram. Além disso, isso não altera o arquivo "ativo" - você pode ver olhando na parte inferior direita a sintaxe escolhida. A reinicialização corrige isso.
dmackerman
8
Isso pode ser feito por projeto? Por exemplo, para um projeto, talvez eu queira a sintaxe Mako para arquivos .html; enquanto outro pode usar outra sintaxe.
Ken Kinder
44
Este ainda é o método usado no ST3 (a partir da versão 3010). Parece não ser necessário reiniciar e todos os arquivos ativos com a extensão são atualizados automaticamente.
tbeseda 04/02
3
@ ziyuang - Verifique se você tem o cursor em algum lugar do arquivo aberto.
Richard Marskell - Drackir
148

Vá para a Packages/User, crie (ou edite) um .sublime-settingsarquivo com o nome da sintaxe onde você deseja adicionar as extensões, Ini.sublime-settingsno seu caso, e escreva algo como isto:

{
    "extensions":["cfg"]
}

E, em seguida, reinicie o Sublime Text

kizu
fonte
NB a sintaxe que você deseja usar é diferencia maiúsculas e minúsculas (por exemplo, CSSpara css) e isso vai substituir defini-lo através da interface do usuário (ver @ post de Colin)
ForbesLindesay
@ Elland eu abri um problema para o problema.
perfil completo de JJD
29
Acho mais fácil com o texto sublime 2/3 abrir o arquivo e selecionar a sintaxe que você deseja usar. Em seguida, clique em Preferências-> Configurações - Mais -> Sintaxe específica - Usuário. E criará esse arquivo para você. Basta colar o código acima, salvar e reiniciar.
Kokorohakai
Usado desta forma, porque eu era capaz de remover um arquivo de configurações que estava substituindo minhas configurações através da interface do usuário
turbo2oh
Existe alguma maneira de configurar isso para um projeto específico?
213156
21

No ST2, há um pacote que você pode instalar chamado Default FileType, que faz exatamente isso.

Mais informações aqui .

trejox
fonte
1
This package sets the default file type of new files to be either the same as the current file, or a predefined default. Exatamente o que eu estava procurando! Obrigado
Ricardo Saporta
no ST3, também funciona! só precisa de algum trabalho manual (save DefaultFileType no caminho do usuário ST3.
staticor
5

Você pode ativar o destaque de sintaxe com base no conteúdo do arquivo.

Por exemplo, meus Makefiles, independentemente de sua extensão, a primeira linha da seguinte maneira:

#-*-Makefile-*- vim:syntax=make

Essa é uma prática típica para outros editores, como o vim.

No entanto, para que isso funcione, é necessário modificar o Makefile.tmLanguagearquivo.

  1. Encontre o arquivo (para Sublime Text 3 no Ubuntu) em:

    /opt/sublime_text/Packages/Makefile.sublime-package
    

Observe que esse é realmente um arquivo zip. Copie-o, renomeie com .zip no final e extraia o arquivo Makefile.tmLanguage.

  1. Edite o novo Makefile.tmLanguageadicionando a chave e a sequência "firstLineMatch" após a seção "fileTypes". No exemplo abaixo, as duas últimas linhas são novas (devem ser adicionadas por você). A <string>seção contém a expressão regular, que permitirá o destaque da sintaxe para os arquivos que correspondem à primeira linha. Esta expressão reconhece dois padrões: " -*-Makefile-*-" e " vim:syntax=make".

    ...
    <key>fileTypes</key>
    <array>
        <string>GNUmakefile</string>
        <string>makefile</string>
        <string>Makefile</string>
        <string>OCamlMakefile</string>
        <string>make</string>
    </array>
    
    <key>firstLineMatch</key>
    <string>^#\s*-\*-Makefile-\*-|^#.*\s*vim:syntax=make</string>
    
  2. Coloque o modificado Makefile.tmLanguageno diretório de configurações do usuário:

    ~/.config/sublime-text-3/Packages/User/Makefile.tmLanguage
    

Todos os arquivos correspondentes à regra da primeira linha devem ativar o destaque da sintaxe quando abertos.

elomage
fonte
Isso foi útil. É bom saber que é possível, mas editar todos os arquivos .sublime-package para cada tipo de arquivo que possa conter esse padrão não é prático. Portanto, provavelmente não usarei esse recurso.
Travis Spencer #