Come aprire un nuovo file c ++ con un modello predefinito in Sublime Text?

1

Sono curioso di sapere se c'è un modo per aprire non un nuovo file vuoto ma un nuovo file con un modello predefinito. Partecipo ai concorsi di coding online e per ogni nuovo file (che salvo come '.cpp'), devo Cmd + C e Cmd + V tutte le direttive del preprocessore ovvero #include <..> 's e #define ' s da uno dei miei precedenti file '.cpp'. C'è un modo in cui posso scrivere tutte queste cose su un file e su ogni nuovo file che salvo come file c ++, questo viene caricato su di esso, salvando così il mio copia-incolla / ridigitazione. Eclipse IDE ha questa caratteristica, volevo sapere se è possibile in qualche modo anche in Sublime Text. Grazie!

    
posta Aditya Bahuguna 19.12.2014 - 19:16
fonte

1 risposta

2

Dovresti usare uno snippet. Ad esempio, puoi definire un nuovo snippet e attivarlo con !initcpp . Quindi apri un nuovo file, digita !initcpp , premi e sei pronto per andare.

Per definirne uno nuovo vai su Strumenti → Nuovo frammento ...

Da testo sublime: snippet .

I frammenti possono essere memorizzati nella cartella di qualsiasi pacchetto, ma per mantenerlo semplice mentre stai imparando, puoi salvarli nella tua cartella Packages/User .

Formato file frammenti

I frammenti di solito vivono in un pacchetto di testo sublime. Sono file XML semplificati con l'estensione .sublime-snippet .

La struttura di un tipico frammento di codice è la seguente (compresi i suggerimenti di default Sublime Inserimenti di testo per tua comodità):

<snippet>
    <content><![CDATA[Type your snippet here]]></content>
    <!-- Optional: Tab trigger to activate the snippet -->
    <tabTrigger>xyzzy</tabTrigger>
    <!-- Optional: Scope the tab trigger will be active in -->
    <scope>source.python</scope>
    <!-- Optional: Description to show in the menu -->
    <description>My Fancy Snippet</description>
</snippet>

L'elemento snippet contiene tutte le informazioni necessarie a Sublime Text per sapere cosa inserire, se inserire e quando. Diamo un'occhiata a ciascuna di queste parti a turno.

contenuti

Lo snippet corrente. I frammenti possono variare da modelli semplici a modelli abbastanza complessi. Vedremo esempi di entrambi in seguito.

Tieni presente quanto segue quando scrivi i tuoi frammenti:

  • Se vuoi ottenere un valore letterale $ , devi sfuggire in questo modo: \$ .
  • Quando scrivi uno snippet che contiene indentazione, usa sempre le schede. Quando lo snippet viene inserito, le schede verranno trasformate in spazi se l'opzione translateTabsToSpaces è true .
  • Il content deve essere incluso in una sezione <![CDATA[…]]> . Gli snippet non funzioneranno se non lo fai!
  • Il content del tuo snippet non deve contenere ]]> perché questa stringa di caratteri chiuderà prematuramente la sezione <![CDATA[…]]> , causando un errore XML. Per aggirare questa trappola, puoi inserire una variabile non definita nella stringa in questo modo: ]]$NOT_DEFINED> . Questa stringa modificata passa attraverso il parser XML senza chiudere la sezione <![CDATA[…]]> dell'elemento di contenuto, ma Sublime Text sostituirà $NOT_DEFINED con una stringa vuota prima di inserire lo snippet nel file. In altre parole, ]]$NOT_DEFINED> nel contenuto del file snippet verrà scritto come ]]> quando si attiva lo snippet.

tabTrigger

Definisce la sequenza di tasti da premere per inserire questo snippet. Dopo aver digitato questa sequenza, lo snippet si avvia non appena si preme il tasto .

Un trigger di tabulazione è un binding a chiave implicita.

portata

Selettore dell'ambito che determina il contesto in cui lo snippet sarà attivo. Vedi Scopes per ulteriori informazioni.

Descrizione

Usato quando si mostra lo snippet nel menu Snippet. Se non è presente, Sublime Text si imposta automaticamente sul nome del file dello snippet.

Con queste informazioni, puoi iniziare a scrivere i tuoi frammenti personali come descritto nelle sezioni successive.

    
risposta data 19.12.2014 - 21:51
fonte

Leggi altre domande sui tag