VimCS: Gestione: differenze tra le versioni
(gestione vimcs) |
S3v (discussione | contributi) m (→File remoti) |
||
(8 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 | 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 | Aprendo due o più file ci si può spostare tra uno e l'altro usando: <br/> | ||
'''<nowiki>:</nowiki> | '''<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/> | ||
'''N | '''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 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 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 - ''' | 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 j''' sotto <br/> | ||
''' | '''Ctrl-w k''' sopra <br/> | ||
''' | '''Ctrl-w l''' destra <br/> | ||
''' | '''Ctrl-w t''' più in alto <br/> | ||
''' | '''Ctrl-w b''' più in basso | ||
ridimensionare orizzontalmente: <br/> | ridimensionare orizzontalmente: <br/> | ||
''' | '''Ctrl-w +''' <br/> | ||
''' | '''Ctrl-w -''' | ||
con numero di righe predefinito (ad esempio, 33 | con numero di righe predefinito (ad esempio, 33 Ctrl-w +): <br/> | ||
'''NUMERO | '''NUMERO Ctrl-w +''' <br/> | ||
'''NUMERO | '''NUMERO Ctrl-w -''' | ||
con dimensione predefinita: '''NUMERO | con dimensione predefinita: '''NUMERO Ctrl-w _''' <br/> | ||
ridimensiona verticalmente: <br/> | ridimensiona verticalmente: <br/> | ||
'''NUMERO | '''NUMERO Ctrl-w <''' <br/> | ||
'''NUMERO | '''NUMERO Ctrl-w >''' <br/> | ||
'''NUMERO | '''NUMERO Ctrl-w =''' | ||
inverte posizione finestra orizzontale: <br/> | inverte posizione finestra orizzontale: <br/> | ||
verso l'alto - ''' | verso l'alto - '''Ctrl-w R''' <br/> | ||
verso il basso - ''' | verso il basso - '''Ctrl-w r''' <br/> | ||
indipendente dal focus - ''' | indipendente dal focus - '''Ctrl-w x''' | ||
inverte posizione finestra verticale: <br/> | inverte posizione finestra verticale: <br/> | ||
muovi a sinistra - ''' | muovi a sinistra - '''Ctrl-w H''' <br/> | ||
muovi a destra - ''' | muovi a destra - '''Ctrl-w L''' <br/> | ||
muovi in alto - ''' | muovi in alto - '''Ctrl-w K''' <br/> | ||
muovi in basso - ''' | muovi in basso - '''Ctrl-w J''' | ||
chiude finestra - ''':close''' (oppure ''' | chiude finestra - ''':close''' (oppure '''Ctrl-w c''') <br/> | ||
chiudi finestra tranne la corrente - ''' | 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: | ||
<pre> | <pre>$ vim -o nome_file1 nome_file2</pre> | ||
$ vim -o nome_file1 nome_file2 | |||
</pre> | apre più file in finestre verticali | ||
apre | <pre>$ vim -O nome_file1 nome_file2</pre> | ||
<pre> | |||
$ vim -O nome_file1 nome_file2 | apre finestra corrente in un tab - '''Ctrl-w T''' | ||
</pre> | |||
apre finestra corrente in un tab - ''' | |||
scorre le finestre assieme in stile vimdiff - ''':set scrollbind''' | scorre le finestre assieme in stile vimdiff - ''':set scrollbind''' | ||
Riga 118: | 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 126: | Riga 125: | ||
apre più file in tab: | apre più file in tab: | ||
<pre> | <pre>$ 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 135: | 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 |
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