Vim Cheat Sheet

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

Parlare di Vim non è facile, è complesso, infinito e oltre a questo esiste già moltissima documentazione.
Perciò questa vuole essere una raccolta di comandi spiegata in modo schematico e di facile consultazione in caso di bisogno.
La caratteristica fondamentale di Vim è di avere varie modalità differenti; nonostante all'inizio ciò possa far sentire a disagio, è anche uno dei suoi punti forti, che con l'abitudine non faranno rimpiangere nessun altro editor.

  • Modalità comando: è la prima che si incontra appena aperto, si possono impartire comandi specifici che spaziano dalle opzioni di configurazione stesse all'editing in modo massiccio, uso di regex e molto altro. In caso ci si trovi in altre modalità, questa si ottiene con il tasto Escape.
  • Modalità inserimento: per inserire testo come un normale editor, dalla modalità comando vi si accede con i (lettera i).
  • Modalità visuale: selezione del testo con la possibilità di compiere operazioni su interi blocchi. Dalla modalità comando si attiva in tre modi differenti:
    • v (lettera v) : normale, parte da dove è posizionato il cursore;
    • V (lettera v maiuscola) : a linee, seleziona per righe, dall'inizio alla fine di ognuna;
    • Ctrl-v : a blocchi, seleziona seguendo le colonne.
  • Modalità sostituzione: è simile all'inserimento con la differenza che qualsiasi cosa verrà digitata compierà una sostituzione sovrascrivendo il vecchio testo, dalla modalità comando si attiva con R (quindi Shift-r). Esiste anche una sostituzione temporanea attivabile con la lettera r seguita da cosa si vuole sostituire, vale solo per un carattere, nello specifico quello sotto il cursore.
  • Modalità Ex: è come avere il prompt dei comandi sempre attivo, ovvero non è necessario usare : (due punti) e lo schermo non viene aggiornato dopo ogni comando. Questo riduce di molto i tempi di esecuzione ed equivale a richiamare ex o Vim con l'opzione -e.
    • Utilissima per operazioni non interattive quali script e funzioni Bash, è considerata una versione migliorata di GNU Ed.
:help Ex-mode

In modalità comando le istruzioni vengono passate tramite una sorta di attivatore, ovvero : (due punti). Tranne quando si inserisce effettivamente del testo è preferibile restare in modalità comando; infatti nonostante in modalità inserimento i classici tasti di direzione funzionino, trovarsi in modalità comando diventa essenziale per muoversi ed operare velocemente all'interno del documento, grazie alla maggiore quantità di scelte rapide disponibili.
C'è la possibilità di usare comandi in modalità inserimento senza premere Esc, ma non l'ho mai apprezzata, giacché la scorciatoia è Ctrl-o che trovo decisamente scomoda.

Di seguito una breve legenda affinché ci sia un minimo di chiarezza su quanto andrò ad esporre.
Tutti i comandi sono da intendere in modo letterale, nel senso che vanno digitati così come sono scritti, sia quelli preceduti dai due punti che quelli senza, quelli composti da più lettere vanno usati in sequenza e senza aspettare troppo tempo tra una e l'altra perché c'è un timer. Fanno eccezione i comandi preceduti da un $ (il prompt Bash) che sono invece istruzioni a linea di comando da utilizzare in un terminale.
Ctrl-f significa premere contemporaneamente il tasto Control e il tasto f.
Ctrl-w c significa premere contemporaneamente il tasto Control e il tasto w, rilasciarli e premere il tasto c (funziona anche senza rilasciare ma le acrobazie da pianista le lasciamo agli utenti emacs :).
Per schermo si intende la porzione visibile dell'intero documento, ovvero la parte di testo contenuta nella finestra, che ovviamente varia a seconda delle dimensioni del terminale e del monitor.

All'avvio Vim carica un serie di file, se completo di backend grafico carica anche varie utilità per gestire la clipboard, macro e plugin, oltre ad acquisire la variabile d'ambiente TERM e inizializzare una shell; per queste ragioni ne è sconsigliato l'uso come utente root. Lo stesso vale per "sudo vim" col quale si otterrebbero i privilegi. È invece preferibile usare il comando sudoedit dopo averlo configurato con qualcosa di simile:

skizzhg jackinthebox = sudoedit

Si può vedere cosa succede durante lo startup con:

$ vim -V

e

$ vim --startuptime /tmp/vim.log

che apre Vim e salva l'output in /tmp/vim.log.

Una lettura interessante sono i capitoli 4 e 5 di

:help starting


Basi

  • Iniziare a scrivere
  • Come muoversi
  • Salvare il documento
  • Uscire da Vim


Gestione

  • Buffer
  • Finestre
  • Tab


Editing

  • Sostituzione
  • Selezione e inserimento
  • Indentazione
  • Copia, taglia, incolla, cancella
  • Annulla, ripeti, cronologia e ricerca
  • Autocompletamento
  • Clipboard


Varie

  • Differenze
  • Creare html
  • Cifratura testo
  • Vim remote


Configurazione

  • .vimrc
  • .vim/
  • Gerarchia della directory .vim/


Extra

  • Extra
  • Easter egg
  • Riferimenti




Guida scritta da: skizzhg   Debianized 20%
Estesa da:
Plutonio (revisione e suggerimenti)
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized