VimCS: Gestione: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
 
(7 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
{{Template:VimCS}}
{{Template:VimCS}}
= Apertura e gestione dei file =
== Apertura e gestione dei file ==
Si possono aprire molteplici file e gestirli in vari modi: <br/>
Si possono aprire molteplici file e gestirli in vari modi: <br/>
* visualizzandone uno alla volta, questi sono chiamati buffer
* visualizzandone uno alla volta, questi sono chiamati buffer
Riga 7: Riga 7:


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. <br/>
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. <br/>
Con l'aiuto di alcune mappe di tasti create apposta o di script, i buffer restano il modo più
Con l'aiuto di alcune mappe di tasti create appositamente o di plugin, i buffer restano il modo più pratico e veloce per tenere aperti tanti file e muoversi tra di essi.
pratico e veloce per tenere aperti tanti file e muoversi tra di essi.


apre file - ''':e nome_file'''
apre file - ''':e nome_file'''
Riga 15: Riga 14:




== Buffer ==
=== Buffer ===
Aprendo due o più file ci si puo' spostare tra uno e l'altro usando: <br/>
Aprendo due o più file ci si può spostare tra uno e l'altro usando: <br/>
'''<nowiki>:</nowiki>n''' (successivo) <br/>
'''<nowiki>:</nowiki>next''' (successivo) <br/>
'''<nowiki>:</nowiki>prev''' (precedente) <br/>
'''<nowiki>:</nowiki>prev''' (precedente) <br/>
'''<nowiki>:</nowiki>bn''' (successivo) <br/>
'''<nowiki>:</nowiki>bn''' (successivo) <br/>
Riga 24: Riga 23:


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


Si può ottenere una lista dei buffer aperti in tre modi diversi: <br/>
Si può ottenere una lista dei buffer aperti in tre modi diversi: <br/>
Riga 40: Riga 39:
chiude un buffer specifico - ''':bd numero_buffer'''
chiude un buffer specifico - ''':bd numero_buffer'''


http://vim.wikia.com/wiki/Vim_buffer_FAQ


== Finestre ==
divide finestra orizzontalmente - ''':split''' (oppure '''ctrl-w s''') <br/>
divide finestra verticalmente - ''':vsplit''' (oppure '''ctrl-w v''')


Il comportamento predefinito è di riportare nello split lo stesso file, dopodiché si può aprirne
=== Finestre ===
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. <br/>
divide finestra orizzontalmente - ''':split''' (oppure '''Ctrl-w s''') <br/>
divide finestra verticalmente - ''':vsplit''' (oppure '''Ctrl-w v''')


divide creando finestra orizzontale vuota - '''ctrl-w n''' <br/>
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. <br/>
mappa la sequenza di tasti <code>ctrl-w V</code> per creare una finestra verticale vuota: <br/>
: ''':map <C-W>V :vne<cr>'''


Come si può vedere il comando è <code>:map</code> 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 è <code>:vne</code>, ed infine <code><cr></code> che è carriage return ed equivale a premere il tasto Return appunto (l'invio, quello che impropriamente chiamiamo Enter, è invece quello sul tastierino numerico :).
divide creando finestra orizzontale vuota - '''Ctrl-w n''' <br/>
mappa la sequenza di tasti <code>Ctrl-w V</code> per creare una finestra verticale vuota: <br/>
'''<nowiki>:</nowiki>nnoremap <C-W>V :vne<CR>'''


Tutti i comandi dati in questo modo durano solo per la sessione in corso, per averli permanenti
Come si può vedere il comando è <code>:nnoremap</code> 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 è <code>:vne</code>, ed infine <code><CR></code> che è carriage return ed equivale a premere il tasto Return appunto (l'invio, quello che impropriamente chiamiamo Enter, è invece quello sul tastierino numerico :).
vanno inseriti nel file <code>~/.vimrc</code>; i due punti possono essere omessi.
 
Tutti i comandi dati in questo modo durano solo per la sessione in corso, per averli permanenti vanno inseriti nel file <code>~/.vimrc</code>; i due punti possono essere omessi.


È possibile aprire una finestra con una dimensione predefinita (ad esempio, :33split): <br/>
È possibile aprire una finestra con una dimensione predefinita (ad esempio, :33split): <br/>
Riga 61: Riga 60:
'''<nowiki>:</nowiki>NUMEROvsplit'''
'''<nowiki>:</nowiki>NUMEROvsplit'''


muoversi tra le finestre - '''ctrl-w w''' <br/>
muoversi tra le finestre - '''Ctrl-w w''' <br/>
muoversi in una finestra precisa: <br/>
muoversi in una finestra precisa: <br/>
'''ctrl-w h'''  sinistra <br/>
'''Ctrl-w h'''  sinistra <br/>
'''ctrl-w j'''  sotto <br/>
'''Ctrl-w j'''  sotto <br/>
'''ctrl-w k'''  sopra <br/>
'''Ctrl-w k'''  sopra <br/>
'''ctrl-w l'''  destra <br/>
'''Ctrl-w l'''  destra <br/>
'''ctrl-w t'''  piu' in alto <br/>
'''Ctrl-w t'''  più in alto <br/>
'''ctrl-w b'''  piu' in basso
'''Ctrl-w b'''  più in basso


ridimensionare orizzontalmente: <br/>
ridimensionare orizzontalmente: <br/>
'''ctrl-w +''' <br/>
'''Ctrl-w +''' <br/>
'''ctrl-w -'''
'''Ctrl-w -'''


con numero di righe predefinito (ad esempio, 33 ctrl-w +): <br/>
con numero di righe predefinito (ad esempio, 33 Ctrl-w +): <br/>
'''NUMERO ctrl-w +''' <br/>
'''NUMERO Ctrl-w +''' <br/>
'''NUMERO ctrl-w -'''
'''NUMERO Ctrl-w -'''


con dimensione predefinita: '''NUMERO ctrl-w _''' <br/>
con dimensione predefinita: '''NUMERO Ctrl-w _''' <br/>


ridimensiona verticalmente: <br/>
ridimensiona verticalmente: <br/>
'''NUMERO ctrl-w <''' <br/>
'''NUMERO Ctrl-w <''' <br/>
'''NUMERO ctrl-w >''' <br/>
'''NUMERO Ctrl-w >''' <br/>
'''NUMERO ctrl-w ='''
'''NUMERO Ctrl-w ='''


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


inverte posizione finestra verticale: <br/>
inverte posizione finestra verticale: <br/>
muovi a sinistra - '''ctrl-w H''' <br/>
muovi a sinistra - '''Ctrl-w H''' <br/>
muovi a destra - '''ctrl-w L''' <br/>
muovi a destra - '''Ctrl-w L''' <br/>
muovi in alto - '''ctrl-w K''' <br/>
muovi in alto - '''Ctrl-w K''' <br/>
muovi in basso - '''ctrl-w J'''
muovi in basso - '''Ctrl-w J'''


chiude finestra - ''':close''' (oppure '''ctrl-w c''') <br/>
chiude finestra - ''':close''' (oppure '''Ctrl-w c''') <br/>
chiudi finestra tranne la corrente - '''ctrl-w o'''
chiudi finestra tranne la corrente - ''':only''' (oppure '''Ctrl-w o''')


Si possono aprire in finestre più buffer già presenti: <br/>
Si possono aprire in finestre più buffer già presenti: <br/>
apre tutti in finestre orizzontali - ''':ball''' <br/>
apre tutti in finestre orizzontali - ''':ball''' <br/>
apre tutti in finestre verticali - ''':vertical ball'''
apre tutti in finestre verticali - ''':vertical ball'''
apre un file in una finestra orizzontale - ''':new nome_file'''<br/>
apre un file in una finestra verticale - ''':vert new nome_file'''


apre più file in finestre orizzontali:
apre più file in finestre orizzontali:
$ vim -o nome_file1 nome_file2
<pre>$ vim -o nome_file1 nome_file2</pre>


apre piu' file in finestre verticali
apre più file in finestre verticali
$ vim -O nome_file1 nome_file2
<pre>$ vim -O nome_file1 nome_file2</pre>


apre finestra corrente in un tab - '''ctrl-w T'''
apre finestra corrente in un tab - '''Ctrl-w T'''


scorre le finestre assieme in stile vimdiff - ''':set scrollbind'''
scorre le finestre assieme in stile vimdiff - ''':set scrollbind'''
Riga 116: Riga 118:
apre finestra verticale di esplorazione file - ''':Vexplore'''
apre finestra verticale di esplorazione file - ''':Vexplore'''


 
=== Tab ===
== Tab ==
apre tab - ''':tabnew''' <br/>
apre tab - ''':tabnew''' <br/>
chiude tab - ''':close'''
chiude tab - ''':close'''
Riga 124: Riga 125:


apre più file in tab:
apre più file in tab:
$ vim -p nome_file1 nome_file2
<pre>$ vim -p nome_file1 nome_file2</pre>


apre più buffer in tab - ''':tab ball'''
apre più buffer in tab - ''':tab ball'''
Riga 131: Riga 132:
successivo - ''':tabn''' (oppure '''gt''') <br/>
successivo - ''':tabn''' (oppure '''gt''') <br/>
precedente - ''':tabp''' (oppure '''gT''')
precedente - ''':tabp''' (oppure '''gT''')
=== File remoti ===
La procedura per aprire un file remoto, cioè un file che non si trova sulla macchina locale, è assolutamente identica a quanto già scritto in precedenza; l'unica differenza è la diversa sintassi utilizzata che prevede l'uso del comando [[scp]]:
<pre>
$ vim scp://NOMEUTENTE@NOMESERVER//PERCORSO/ASSOLUTO/FILE_DA_APRIRE
</pre>
dove:
;NOMEUTENTE:è il nome dell'utente che ha accesso al server
;NOMESERVER: è il nome della macchina su cui si trova il file che vogliamo modificare
;PERCORSO ASSOLUTO: il [[Path]] completo del file (notare che è preceduto da '''due''' slash ('//') )
;FILE_DA_APRIRE: il nome del file
Ad esempio:
<pre>$ vim scp://pippo@ilmioserver//home/pippo/documenti/todolist.txt</pre>
Le modifiche al file avverranno su una copia locale che verrà poi trasferita sul server remoto tramite ''scp'' alla chiusura di Vim.
Notare che la stessa sintassi è assolutamente valida anche per modificare il file dall'interno di Vim:
<pre>
:e scp://NOMEUTENTE@NOMESERVER//PERCORSO/ASSOLUTO/FILE_DA_APRIRE
</pre>
[[Categoria: Elaborazione_testi]]

Versione attuale delle 14:41, 13 dic 2019

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 appositamente o di plugin, 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 può spostare tra uno e l'altro usando:
:next (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

http://vim.wikia.com/wiki/Vim_buffer_FAQ


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:
:nnoremap <C-W>V :vne<CR>

Come si può vedere il comando è :nnoremap 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 più in alto
Ctrl-w b più 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 - :only (oppure 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 un file in una finestra orizzontale - :new nome_file
apre un file in una finestra verticale - :vert new nome_file

apre più file in finestre orizzontali:

$ vim -o nome_file1 nome_file2

apre più 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)

File remoti

La procedura per aprire un file remoto, cioè un file che non si trova sulla macchina locale, è assolutamente identica a quanto già scritto in precedenza; l'unica differenza è la diversa sintassi utilizzata che prevede l'uso del comando scp:

$ vim scp://NOMEUTENTE@NOMESERVER//PERCORSO/ASSOLUTO/FILE_DA_APRIRE

dove:

NOMEUTENTE
è il nome dell'utente che ha accesso al server
NOMESERVER
è il nome della macchina su cui si trova il file che vogliamo modificare
PERCORSO ASSOLUTO
il Path completo del file (notare che è preceduto da due slash ('//') )
FILE_DA_APRIRE
il nome del file

Ad esempio:

$ vim scp://pippo@ilmioserver//home/pippo/documenti/todolist.txt

Le modifiche al file avverranno su una copia locale che verrà poi trasferita sul server remoto tramite scp alla chiusura di Vim.

Notare che la stessa sintassi è assolutamente valida anche per modificare il file dall'interno di Vim:

:e scp://NOMEUTENTE@NOMESERVER//PERCORSO/ASSOLUTO/FILE_DA_APRIRE