VimCS: Gestione

Da Guide@Debianizzati.Org.
Versione del 22 dic 2010 alle 02:11 di Skizzhg (discussione | contributi) (gestione vimcs)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca
Vim Cheat Sheet

Sommario

  1. Introduzione
  2. Le basi
  3. Gestione dei file
  4. Editing
  5. Varie
  6. Configurazione
  7. Extra

Apertura e gestione dei file

Si possono aprire molteplici file e gestirli in vari modi:

  • visualizzandone uno alla volta, questi sono chiamati buffer
  • dividerli in split orizzontali e verticali, questi sono chiamati finestre
  • visualizzazione in tab

Proprio come un browser web, l'uso dei tab è preferibilmente confinato a dividere progetti diversi, "un file = un tab" non è nella filosofia di un "vimmer" che si rispetti :) e il passaggio tra uno e l'altro è inoltre più scomodo di quanto si possa pensare.
Con l'aiuto di alcune mappe di tasti create apposta o di script, i buffer restano il modo più pratico e veloce per tenere aperti tanti file e muoversi tra di essi.

apre file - :e nome_file

apre file nuovo - :enew


Buffer

Aprendo due o più file ci si puo' spostare tra uno e l'altro usando:
:n (successivo)
:prev (precedente)
:bn (successivo)
:bp (precedente)
:e# (consente il passaggio veloce tra il precedente buffer e il corrente)

Il passaggio veloce tra l'ultimo buffer e il corrente si ottiene anche con:
ctrl-^ (oppure ctrl-6)
N ctrl-^ (dove N è il numero del buffer)

Si può ottenere una lista dei buffer aperti in tre modi diversi:
:ls
:buffers
:files

Verrà mostrata una riga per ogni file aperto con un numero che lo identifica, un indicatore dello stato, il nome del file e la riga in cui è il cursore; si noti che il numero è univoco e non cambia, se si chiude un file rimarrà il "buco" nella sequenza numerica.
Per la spiegazione degli indicatori leggere il relativo help.
:h :ls

passa a un buffer specifico - :b numero_buffer
chiude il buffer corrente - :bd
chiude un buffer specifico - :bd numero_buffer


Finestre

divide finestra orizzontalmente - :split (oppure ctrl-w s)
divide finestra verticalmente - :vsplit (oppure ctrl-w v)

Il comportamento predefinito è di riportare nello split lo stesso file, dopodiché si può aprirne uno diverso usando i comandi dei buffer; in caso si voglia subito una finestra vuota possiamo farlo tranquillamente per lo split orizzontale, mentre per il verticale dovremo ricorrere ad una mappa.

divide creando finestra orizzontale vuota - ctrl-w n
mappa la sequenza di tasti ctrl-w V per creare una finestra verticale vuota:

:map <C-W>V :vne<cr>

Come si può vedere il comando è :map seguito dalla scorciatoia desiderata, i caratteri speciali come Control e le eventuali sequenze vanno messe tra less e greater, poi il carattere aggiuntivo, quindi il comando vero e proprio, che è :vne, ed infine <cr> che è carriage return ed equivale a premere il tasto Return appunto (l'invio, quello che impropriamente chiamiamo Enter, è invece quello sul tastierino numerico :).

Tutti i comandi dati in questo modo durano solo per la sessione in corso, per averli permanenti vanno inseriti nel file ~/.vimrc; i due punti possono essere omessi.

È possibile aprire una finestra con una dimensione predefinita (ad esempio, :33split):
:NUMEROsplit
:NUMEROvsplit

muoversi tra le finestre - ctrl-w w
muoversi in una finestra precisa:
ctrl-w h sinistra
ctrl-w j sotto
ctrl-w k sopra
ctrl-w l destra
ctrl-w t piu' in alto
ctrl-w b piu' in basso

ridimensionare orizzontalmente:
ctrl-w +
ctrl-w -

con numero di righe predefinito (ad esempio, 33 ctrl-w +):
NUMERO ctrl-w +
NUMERO ctrl-w -

con dimensione predefinita: NUMERO ctrl-w _

ridimensiona verticalmente:
NUMERO ctrl-w <
NUMERO ctrl-w >
NUMERO ctrl-w =

inverte posizione finestra orizzontale:
verso l'alto - ctrl-w R
verso il basso - ctrl-w r
indipendente dal focus - ctrl-w x

inverte posizione finestra verticale:
muovi a sinistra - ctrl-w H
muovi a destra - ctrl-w L
muovi in alto - ctrl-w K
muovi in basso - ctrl-w J

chiude finestra - :close (oppure ctrl-w c)
chiudi finestra tranne la corrente - ctrl-w o

Si possono aprire in finestre più buffer già presenti:
apre tutti in finestre orizzontali - :ball
apre tutti in finestre verticali - :vertical ball

apre più file in finestre orizzontali:

$ vim -o nome_file1 nome_file2

apre piu' file in finestre verticali

$ vim -O nome_file1 nome_file2

apre finestra corrente in un tab - ctrl-w T

scorre le finestre assieme in stile vimdiff - :set scrollbind

apre esplorazione file - :Explore
apre finestra verticale di esplorazione file - :Vexplore


Tab

apre tab - :tabnew
chiude tab - :close

apre file in un nuovo tab - :tabedit nome_file

apre più file in tab:

$ vim -p nome_file1 nome_file2

apre più buffer in tab - :tab ball

muoversi tra tab:
successivo - :tabn (oppure gt)
precedente - :tabp (oppure gT)