Aggiungiamo ancora qualche riga al nostro file di configurazione di VI per avere un ambiente ancora più flessibile.
Come ho già detto in questo post VI è un editor estremamente flessibile e posso azzardarmi a dire che quello che è al suo interno è un vero e proprio linguaggio di scripting, allora perchè non sfruttarlo e rendere il nostro ambiente di lavoro sensibile al formato del file a cui stiamo lavorando?
Io per esigenze universitarie mi ritrovo a dover programmare in Java, e trovo seriamente fastidioso dover ogni volta digitare:
javac progetto.java
per creare il bytecode e poi digitare.
java progetto
per eseguirlo. Un'alternativa potrebbe essere eseguire i comandi all'interno di VI con:
:!javac progetto.java
:!java progetto
oppure, configurare delle scorciatoie da tastiera che permettono di eseguire compilatore e interprete in due mosse semplici semplici. Vediamo come:
Apriamo prima di tutto il nostro file di configurazione:
vim .vimrc
E iniziamo ad inserire i nostri comandi:
let e = expand("%:e")
Il comando let serve per creare una variabile interna, mentre il comando expand provoca l'espansione dell'espressione %:e, che rappresenta l'estensione del file aperto; in poche parole inseriamo nella variabile e una stringa che riporta l'estensione del file aperto.
Ora iniziamo con un'istruzione condizionale:
if e=="java"
Notare che l'uso dell'if assomiglia molto a python, a parte la mancanza dei due punti finali. È importantissimo usare il doppio uguale ( == ) altrimenti invece di un confronto effettueremo un'assegnazione.
Il resto è abbastanza semplice da capire, chiediamo a VI se l'estensione del file aperto è "java". Ora inseriamo le istruzioni da eseguire in caso affermativo (tutto sulla stessa riga e attenzione all'identazione):
set statusline=%F\ %m\ %r\ %w\ %h\ [FileType:\ %Y]\ [Linea:\ %l/%L\ (%p%%)]\ [Col:\ %v]\ \ \ \ {CTRL-F2\ Compilatore\ -\ CTRL-F\ Avvia\ Classe}
Questo fa in modo che la barra di stato che abbiamo attivato nel capitolo precedente rappresenti, oltre alle informazioni già presenti anche la scritta:
{CTRL-F2 Compilatore - CTRL-F Avvia Classe}
Solo come piccolo promemoria, nel caso dimenticassimo come usare le nostre scorciatoie. Ora impostiamo la prima scorciatoia, quella per il compilatore:
map <C-F2> :!javac %<CR>
Così facendo assegniamo alla combinazione CTRL+F2il comando:
:!javac %
dove il simbolo % verrà automaticamente sostituito con il nome del file completo di estensione. Ora mappiamo la combinazione per l'interprete:
map <C-F> :!java "%:r"<CR>
Con questo comando faccio in modo che premendo CTRL+F venga eseguito il comando:
:!java "%:r"
dove %:r rappresenta il nome del file privato dell'estensione, visto che l'interprete java accetta in ingresso solamente il nome della classe, privo di estensione.
Concludiamo il tutto con un bel:
endif
E abbiamo finito, riassumiamo tutti i comandi digitati:
let e = expand("%:e")
if e=="java"
set statusline=%F\ %m\ %r\ %w\ %h\ [FileType:\ %Y]\ [Linea:\ %l/%L\ (%p%%)]\ [Col:\ %v]\ \ \ \ {CTRL-F2\ Compilatore\ -\ CTRL-F3\ Avvia\ Classe}
map :!javac
map :!java "%:r"
endif
Quindi in questo capitolo abbiamo visto come si creano delle variabili interne e come si usano delle istruzioni condizionali semplici.
Buon divertimento!
Saluti e al prossimo post!
Penaz