2011-04-22

Aprire due file contemporaneamente con vim - gestione finestre

Il classico editor di testo vi, il mio preferito in ambienti Unix, ha un degno successore: vim che ha ampliato di molto le funzionalità messe a disposizione dell'utente.
Una caratteristica che ritengo molto utile é quella che permette di aprire due o più file e vederli nello stesso schermo che viene diviso, da righe orizzontali, per separare visivamente i contenuti dei diversi file, uno per ogni finestra.
Se all'apertura di vim si conoscono già i nomi dei file da aprire si possono fornire come parametri aggiungendo l'opzione -o; se la necessità si presenta quando la sessione di editing del primo file è già avviata si può eseguire il comando :split .

Una volta che si è arrivati alla situazione di avere lo schermo diviso in due, il passaggio del controllo da una finestra ad un'altra si ottiene premendo CTRL-W W ( funziona anche CTRL-W CTRL-W, che io trovo più comodo), per la precisione questo comando sposta il controllo alla finestra seguente ma essendo aperte, nel nostro esempio, solo due finestre, il controllo viene rimbalzato tra le due finestre. Se nella sessione di lavoro viene aperto un numero maggiore di file, dover passare per tutte le finestre per andare alla finestra precedente non sarebbe di certo comodo, quindi si può utilizzare il comando CTRL-W k, allo stesso modo CTRL-W j passa a quella seguente.
Per passare alla prima in altro CTRL-W K e CTRL-W J per passare all'ultima in basso, notare la K e la J maiuscole che si distinguono da quelle minuscole per lo spostamento a quella precedente o quella seguente.
A volte può risultare utile dividere lo schermo editando un solo file, ad esempio se si devono confrontare dei riferimenti a valori che si trovano a parecchie righe di distanza, in questo caso il comando :split senza aggiungere il nome di un file, permette di ottenere proprio l'effetto desiderato, si può passare da una finestra all'altra ma il file è sempre lo stesso.

Oltre alle divisioni orizzontali si possono ottenere anche divisioni verticali, per questo si usa :vsplit ad editor già aperto ed invece l'opzione in apertura è la -O ( lettera o maiuscola ); i comandi per gli spostamenti sono molto simili a quelli per le separazioni orizzontali, si usano le lettere H e L in versione maiuscola e minuscola, precedute da CTRL-W allo stesso modo delle lettere K e J utilizzate in precedenza.

Se la suddivisione effettuata da vim non è soddisfacente in termini di rapporto di dimensioni tra le finestre, si possono utilizzare i comandi CTRL-W + e CTRL-W - (notare: CTRL W e tasto "meno") per ingrandire e rimpicciolire la finestra di cui si ha il controllo, lo spazio viene "rubato" o "regalato" alle finestre adiacenti secondo una logica che di solito è soddisfacente.

Per chiudere tutti i file con un comando solo si può usare :qa sempre che i file non siano stati modificati dopo l'ultimo salvataggio, altrimenti si ricorre a :qa! per chiudere tutti perdendo le modifiche seguenti l'ultimo salvataggio. Se invece si vogliono salvare tutti i file con un solo comando senza chiudere vim si usa :wa invece per salvare e chiudere :wqa

Ancora in ambito finestre di vim, posso aggiungere che vim permette anche di esaminare le differenze tra due file invocandolo all'apertura con l'opzione -d seguita dai percorsi dei due file da confrontare, in questo modo si ottengono due finestre affiancate in cui vengono evidenziate le differenze.

Questi che ho descritto sono gli utilizzi più frequenti che faccio della gestione di finestre di vim, per ora non mi dilungo oltre.

Nessun commento:

Posta un commento