Qualche giorno fa, mentre stavo sviluppando un progettino in C/GTK+3, ho avuto la necessità di voler compilare “al volo” il codice e, dato che uso GEdit, ho abilitato e configurato un plugin veramente interessante e potente che mi ha permesso di associare alcune scorciatoie a dei comandi prestabiliti da me
In particolare ho associato la scorciatoia CTRL+F9 per compilare semplici programmi in C (quindi senza linkare altre librerie tipo -lm, -lcrypto, ecc) e CTRL+F10 per compilare programmi in C/GTK+3.
Vediamo passo passo come fare
1. Abilitare il plugin “Strumenti Esterni” da Modifica -> Preferenze -> Plugin:
2. Andare su Strumenti -> Manage External Tools per accedere alla configurazione del plugin:
3. Aggiungere i comandi che vi interessano. Per fare ciò basta cliccare sul + in basso a sinistra:
Andiamo ad analizzare in dettagli i vari campi.
Tasto Scorciatoia: una volta cliccato in quel campo basta premere i tasti della scorciatoia da tastiera desiderata
Salva: scegliere se salvare o meno il documento corrente o tutti i documenti aperti prima di eseguire lo script
Input: scegliere cosa dare come input allo script (niente, il file corrente, una selezione, una parola selezionata, ecc)
Output: scegliere cosa fare dell’output prodotto (visualizzarlo in un pannello che si aprirà in fondo allo schermo, salvare l’output su un file, sostituire una selezione, ecc)
Applicabilità: scegliere a che documento applicare lo script (ai soli documenti salvati, a tutti i documenti, ai documenti locali o remoti, ecc) e anche a che tipo di documento applicare tale script (C, C++, Ada, Fortran, F#, DOS, ecc)
Ovviamente nel caso di decidesse di impostare un comando per compilare (per esempio GCC) e il campo “Salva” viene lasciato su “Niente” è obbligatorio mettere come “Applicabilità” la voce “Solo ai documenti salvati”.
Ora non resta che analizzare le voci da scrivere all’interno dello script.
1 2 3 4 5 6 | #!/bin/sh dir=$GEDIT_CURRENT_DOCUMENT_DIR file=$GEDIT_CURRENT_DOCUMENT_NAME out_file=$(basename $file .c) gcc -Wall -g -O1 -o ${dir}/${out_file} ${dir}/${file} |
#!/bin/sh
dir=$GEDIT_CURRENT_DOCUMENT_DIR
file=$GEDIT_CURRENT_DOCUMENT_NAME
out_file=$(basename $file .c)
gcc -Wall -g -O1 -o ${dir}/${out_file} ${dir}/${file}La prima e la seconda riga contengono delle variabili d’ambiente che vogliono dire rispettivamente “Percorso completo della directory in cui si trova il file” e “Nome del file attualmente aperto”. Altre variabili d’ambiente che possono essere usate sono:
- GEDIT_CURRENT_DOCUMENT_URI
- GEDIT_CURRENT_DOCUMENT_SCHEME
- GEDIT_CURRENT_DOCUMENT_PATH
- GEDIT_DOCUMENTS_URI
- GEDIT_DOCUMENTS_PATH
La terza riga contiene il nome del file che produrrà GCC (con il suffisso ”.c” dico a basename di prendere il nome del file e togliere l’estensione ”.c”).
Infine la quarta riga contiene il comando GCC con le varie opzioni (-Wall per abilitare tutti gli avvisi, -g produce informazioni di debug nel formato nativo del sistema operativo e -O1 indica il livello di ottimizzazione, ndr)
E questo, per quanto riguarda le opzioni, è tutto. Ora manca solo il risultato
Infatti con le mie impostazioni il risultato finale, una volta salvato il file e premuto CTRL+F10, è:



