Skip to navigation
Logo Penaz's Area

cat /dev/random > penaz

Impariamo VI (Improved) - Il file di configurazione .vimrc parte 2


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