Mi piacerebbe utilizzare Emmet all'interno di altri tipi di file/sintassi rispetto all'HTML. Soprattutto nei file .tpl di Smarty e altri file modello di diversi CMS. Esiste un modo per utilizzare il gestore di tabulazioni anche in questi file? Non mi piace colpire in altri file CTRL + E perché l'unica differenza è l'estensione del file e alcune parti del modello.Testo sublime: gestore di schede Emmet in altri file rispetto all'HTML senza CTRL + E?
risposta
Limiti emmet Gestore di schede per alcuni tipi di file noti perché non esiste un modo corretto di integrarsi con i frammenti nativi ST. Per esempio. se si tenta di espandere, ad esempio, l'abbreviazione foo
, Emmet non sa se si desidera trasformarlo nel tag <foo>
o si desidera espandere snippet ST nativo associato a questo trigger. Quindi usa alcuni trucchi per determinare cosa stai cercando di fare. Anche se questo potrebbe funzionare per HTML, in altri linguaggi potrebbe infastidirti con falsi trigger.
Se si è sicuri al 100% che non hai bisogno di frammenti nativi ST nei file modelli, è possibile effettuare le seguenti operazioni: file di keymap aperta dell'utente (trovare Key Bindings — User
voce di menu a ST) e aggiungere il seguente codice lì:
[{
"keys": ["tab"],
"command": "expand_abbreviation_by_tab",
"context": [
{
"operand": "SYNTAX SCOPE",
"operator": "equal",
"match_all": true,
"key": "selector"
},
{
"match_all": true,
"key": "selection_empty"
},
{
"operator": "equal",
"operand": false,
"match_all": true,
"key": "has_next_field"
},
{
"operator": "equal",
"operand": false,
"match_all": true,
"key": "auto_complete_visible"
},
{
"operator": "equal",
"operand": false,
"match_all": true,
"key": "setting.disable_tab_abbreviations_on_auto_complete"
},
{
"match_all": true,
"key": "is_abbreviation"
}
]
}]
Dove SYNTAX SCOPE
è un nome spazio per la sintassi, si può vedere nella barra di stato premendo Ctrl + Maiusc + P (Mac) o Ctrl + Alt + Maiusc + P (PC)
ora dovrebbe cambiare "chiave": "setting.disable_tab_abbreviations_on_auto_complete" a "chiave": "setting.disable_tab_abbreviations" per il suo lavoro
si potrebbe trovare modificare il snippets.json
nella cartella di Emmet (Packages \ Emmet \ Emmet)
aggiungere questo:
"tpl": {
"extends": "html"
},
cambiamento tpl
a qualsiasi estensione del file che ti piacerà per consentire l'espansione del codice Emmet.
ci sono haml
, sass
esempio alla fine del snippets.json
troppo, si potrebbe imitarli.
Invece di modificare snippets.json originali, dovresti inserire il nuovo file snippets.json nell'estensione di Emmet, di solito ~/emmet, (puoi cambiarlo nelle impostazioni di Emmet ad es. ~/.atom/emmet) per una migliore chiarezza e capacità di sopravvivere alle tue impostazioni durante l'aggiornamento/reinstallazione. Quindi aggiungi la sezione: { "tpl": { "extends": "html" } }
Grazie !! Ho fatto quello che hai scritto. Ho sostituito SYNTAX SCOPE con source.ss ma ottengo solo un elenco di parole autocomplete nel mio documento. Quando digito p e premo il tasto tab, si espande in png – suntrop
Se in realtà hai scritto 'source.ss' come scope piuttosto che hai sbagliato: non esiste un nome di questo tipo. –
Ecco cosa mostra ST quando premo CTRL + MAIUSC + P Ecco uno screenshot ... http://project-point.de/source.ss.png – suntrop