Imposta la sintassi predefinita su un tipo di file diverso in Sublime Text 2


731

Come posso impostare un tipo di file predefinito per una determinata estensione di file in Sublime Text 2? In particolare voglio avere i file * .cfg predefiniti per evidenziare la sintassi di Ini ma non riesco a capire come potrei creare questa impostazione personalizzata.

Risposte:


1597

Nella versione corrente di Sublime Text 2 (Build: 2139), è possibile impostare la sintassi per tutti i file di una determinata estensione utilizzando un'opzione nella barra dei menu. Aprire un file con l'estensione che si desidera impostare un valore predefinito per e navigare attraverso i menu seguenti: View -> Syntax -> Open all with current extension as... ->[your syntax choice].

28/06/2012 aggiornato: le recenti build di Sublime Text 2 (almeno dalla build 2181) hanno consentito di impostare la sintassi facendo clic sul tipo di sintassi corrente nell'angolo in basso a destra della finestra. Questo aprirà il menu di selezione della sintassi con l'opzione Open all with current extension as...nella parte superiore del menu.

Aggiornato il 19-04-2016: per ora funziona anche con Sublime Text 3.


2
Hai provato Open all with current extension as...o hai semplicemente impostato la sintassi tramite una scelta nel Syntaxmenu?
Colin R,

Confermato. È necessario riavviare Sublime affinché le modifiche vengano applicate. Inoltre, questo non cambia il file "attivo" - puoi vedere guardando in basso a destra la sintassi che ha scelto. Il riavvio lo risolve però.
dmackerman,

8
Questo può essere fatto in base al progetto? Ad esempio, per un progetto, potrei desiderare la sintassi di Mako per i file .html; mentre un altro potrebbe usare un'altra sintassi.
Ken Kinder il

44
Questo è ancora il metodo usato in ST3 (dalla build 3010). Sembra che non sia necessario alcun riavvio e tutti i file attivi con l'estensione vengono aggiornati automaticamente.
tbeseda

3
@ziyuang: assicurati di avere il cursore da qualche parte nel file aperto.
Richard Marskell - Drackir

148

Vai a a Packages/User, crea (o modifica) un .sublime-settingsfile che prende il nome dalla Sintassi in cui vuoi aggiungere le estensioni, Ini.sublime-settingsnel tuo caso, quindi scrivi lì qualcosa del genere:

{
    "extensions":["cfg"]
}

E quindi riavviare Sublime Text


NB La sintassi che si desidera utilizzare fa distinzione tra maiuscole e minuscole (ad es. CSSPer css) e questo sostituirà l'impostazione tramite l'interfaccia utente (vedere il post di @ Colin)
ForbesLindesay

@Elland ho aperto un problema per il problema.
JJD

29
Trovo più facile con il sublime testo 2/3, aprire il tuo file, quindi selezionare la sintassi che vuoi usare. Quindi fai clic su Preferenze-> Impostazioni - Altro -> Sintassi specifica - Utente. E creerà quel file per te. Basta incollare il codice sopra, salvare e riavviare.
Kokorohakai,

Utilizzato in questo modo perché sono stato in grado di rimuovere un file di impostazioni che sovrascriveva le mie impostazioni tramite l'interfaccia utente
turbo2oh,

C'è un modo per configurarlo per un particolare progetto?
steinybot,

21

In ST2 c'è un pacchetto che puoi installare chiamato Default FileType che fa proprio questo.

Maggiori informazioni qui .


1
This package sets the default file type of new files to be either the same as the current file, or a predefined default. Esattamente quello che stavo cercando! Grazie
Ricardo Saporta,

in ST3 funziona anche!
ho

5

È possibile attivare l'evidenziazione della sintassi in base al contenuto del file.

Ad esempio, i miei Makefile indipendentemente dalla loro estensione la prima riga come segue:

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

Questa è una pratica tipica per altri editor come vim.

Tuttavia, affinché funzioni, è necessario modificare il Makefile.tmLanguagefile.

  1. Trova il file (per Sublime Text 3 in Ubuntu) su:

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

Nota, questo è davvero un file zip. Copialo, rinomina con .zip alla fine ed estrai il file Makefile.tmLanguage da esso.

  1. Modifica il nuovo Makefile.tmLanguageaggiungendo la chiave "firstLineMatch" e la stringa dopo la sezione "fileTypes". Nell'esempio seguente, le ultime due righe sono nuove (dovrebbero essere aggiunte dall'utente). La <string>sezione contiene l'espressione regolare, che abiliterà l'evidenziazione della sintassi per i file che corrispondono alla prima riga. Questa espressione riconosce due modelli: " -*-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. Posiziona il modificato Makefile.tmLanguagenella directory delle impostazioni dell'utente:

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

Tutti i file corrispondenti alla regola della prima riga dovrebbero attivare l'evidenziazione della sintassi quando vengono aperti.


Questo è stato utile. Bello sapere che è possibile, ma la modifica di ogni file .sublime-package per ogni tipo di file che potrebbe contenere un tale schema non è pratica. Pertanto, probabilmente non userò questa funzione.
Travis Spencer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.