Per utilizzare i comandi di spostamento ci si deve trovare in COMMAND MODE.
MOVIMENTO DEL CURSORE
h 1 spazio a sinistra (come backspace)
l 1 spazio a destra (come space)
k 1 linea sopra (stessa colonna)
j 1 linea sotto (stessa colonna)
(in sostituzione di questi quattro caratteri, si possono anche
utilizzare le frecce per spostarsi nelle diverse direzioni)
G posizionamento sull'ultima linea del testo
#G posizionamento sulla linea identificata da "#"
(dove #=numero)
Esempi: 3G 5G 175G
:# stesso funzionamento di #G
#move; ripete "move" "#" volte (dove move=qualsiasi
comando di spostamento)
RISULTATI A VIDEO
^G mostra lo stato del file corrente (informazioni varie)
:= mostra il numero di linee del file
:.= mostra il numero della linea corrente
^L refresh del video
^D si posiziona mezza pagina avanti
(in INSERT MODE shifta indietro di un TAB)
^U si posiziona mezza pagina indietro
^F si posiziona sulla pagina successiva
^B si posiziona sulla pagina precedente
(i tasti di controllo delle pagine, ^D-^U-^F-^B, possono anche
essere utilizzati con un opzionale moltiplicatore, come ad
esempio:
5^F 5 pagine avanti
^E sposta la schermata avanti senza spostare il cursore
^Y sposta la schermata indietro senza spostare il cursore
H si posiziona all'inizio della schermata
M si posiziona al centro della schermata
L si posiziona al fondo della schermata
<< shifta la linea corrente a sinistra
<L shifta tutte le linee, da quella corrente alla
fine dello schermo, verso sinistra
>> shifta la linea corrente a destra
(come TAB in INSERT MODE)
>L shifta tutte le linee, da quella corrente alla
fine dello schermo, verso destra
PARAGRAFO
{ sposta il cursore all'inizio del paragrafo
corrente (o della sezione, se si è in
modalità C)
} sposta il cursore alla fine del paragrafo
corrente (o della sezione, se si è in
modalità C)
( si posiziona all'inizio della frase corrente
) si posiziona alla fine della frase corrente
[[ si posiziona all'inizio di una sezione
]] si posiziona alla fine di una sezione
(è possibile anche associare comandi ai precedenti spostamenti)
LINEA
$ si posiziona alla fine della linea
^ si posiziona al primo carattere non-blank della
linea
0 si posiziona alla colonna zero (inizio linea)
#| si posiziona ad un'esatta colonna sulla linea
(colonna "#")
Esempi: 5| 1| 9|
w si posiziona all'inizio della parola successiva
(una parola è delimitata da un carattere non
alfanumerico)
e si posiziona alla fine della parola successiva
b torna all'inizio della parola precedente
W,E,B stesso funzionamento di w,e,b (parola delimitata
da spazio)
+ posizionamento al primo carattere non-blank
della linea successiva (come RETURN)
- posizionamento al primo carattere non-blank
della linea precedente
EDIT
ESC ESCAPE: fa uscire dall'INPUT MODE, per terminare
quindi l'inserimento e tutte le modifiche
in generale
(se c'è qualcosa che non va, funziona anche ^C)
. ripete l'ultimo cambiamento effettuato (o meglio,
l'ultimo comando dato)
o OPEN: inserisce una linea sotto quella corrente
O OPEN: inserisce una linea sopra quella corrente
i INSERT: inserisce caratteri a sinistra del
cursore
I INSERT: inserisce caratteri all'inizio della
linea
a APPEND: aggiunge caratteri a destra del cursore
A APPEND: aggiunge caratteri alla fine della linea
J JOIN: concatena la linea successiva alla
corrente
#s SUBSTITUTE: sostituisce per "#" caratteri, di
default 1 carattere
#S SUBSTITUTE: sostituisce per "#" intere linee,
di default 1 linea
#r REPLACE: sostituisce "#" caratteri, di default 1
carattere (non è necessario premere ESC); con
"rcarattere" (dove 'carattere' è un qualsiasi
carattere), il carattere di posizionamento del
cursore viene sostituito con quello specificato
dopo 'r'
R REPLACE: entra in modalità di sovrascrittura
c[x] CHANGE: cambia fino a dove specificato con "x"
Esempio:
cw sostituisce la parola corrente
cc CHANGE: cambia l'intera linea
C CHANGE: cambia fino alla fine della linea
Nota: in tutte le modalità di inserzione di testo elencate sopra
(i,a,o,c,r), è possibile anteporre un numero a queste; ciò
comporterà una duplicazione della funzione desiderata
tante volte quante specificate con quel numero.
Nei successivi comandi richiesti da INPUT MODE, invece, non è
possibile specificare il numero delle operazioni da compiere:
^D elimina un rientro (TAB)
^^D elimina tutti i rientri per la linea corrente
(digitare il carattere '^' e poi un CTRL-D)
^W cancella l'ultima parola introdotta
(nota: può essere settato con il comando 'ssty')
^U cancella l'ultima linea introdotta
(nota: può essere settato con il comando 'ssty')
^H corrisponde a backspace, cioè torna indietro di
un carattere
(nota: può essere settato con il comando 'ssty')
Esiste un altro comando richiesto da INPUT MODE:
^V permette di inserire nel testo il carattere ESC
EXIT
ZZ salva il file ed esce (da COMMAND MODE)
:[#,#]w[!] [filename]
WRITE: scrive senza uscire (nel file "filename",
se viene specificato, altrimenti nel file
corrente); vengono utilizzati "#,#" per
specificare gli indirizzi 'from' e 'to' (da/a),
e "!" (bang) per forzare la scrittura (cioè
per riscrivere)
Esempi:
:1,5 w abcd scrive le linee da 1 a 5
nel file abcd
:/from/,/to/ w efg scrive da 'from' a 'to'
nel file efg
:/from/,+5 w hij scrive da 'from' a 5
linee dopo nel file hij
:x WRITE and QUIT: aggiorna, se necessario, ed esce
:wq WRITE and QUIT: aggiorna ed esce
:w !UNIX-CMD
WRITE: scrive l'output e lo passa attraverso una
pipe ad un comando UNIX
Esempio:
:1,10 w !lpr manda le prime 10 linea alla stampante
:q[!] QUIT: esce senza salvare le modifiche (! 'bang' forza l'uscita)
UNDO
u UNDO: annulla l'ultima modifica
U UNDO: annulla tutte le modifiche fatte alla
linea corrente fino a quando il cursore non
è stato spostato dalla linea
"[1-9]PASTE utilizza un comando PASTE per incollare uno dei
buffer numerati; i buffer numerati immagazzinano
le ultime 9 cancellazioni effettuate, con il
metodo "first in last out".
Solitamente si utilizzano per riportare sul file
porzioni testo precedentemente cancellate
Esempi: "1P "2p
CUT
#dd DELETE: cancella "#" linee, di default una linea
(quella corrente)
d<movesrch>DELETE: cancella fino a dove viene specificato
da "move" o "search"
Esempi:
dfe cancella fino a quando trova 'e'
dta cancella fino a quando trova 'a'
d20| cancella fino alla 20esima colonna
d#move DELETE: cancella fino a dove viene specificato da "#move"
Esempio:
d3k cancella 3 linee al di sopra
della linea corrente e questa
inclusa
dw cancella la parola corrente
rispetto alla posizione del
cursore
d/<pattrn> DELETE: cancella fino a quando viene trovato
"pattern" (in avanti)
d?<pattrn> DELETE: cancella fino a quando viene trovato
"pattern" (in dietro)
d'<chr> DELETE: cancella fino al mark 'chr' (vedere la
miscellanea per imparare come creare dei mark)
D DELETE: cancella dalla posizione corrente fino
alla fine della riga
#x X-OUT: cancella un carattere sotto al cursore
(oppure "#" caratteri)
#X X-OUT: cancella un carattere prima del cursore
(oppure "#" caratteri)
YANK
y<movesrch> esegue uno YANK fino a dove specificato da
"move" o "search"
Esempi:
yw yank di una parola
yfg yank fino a quando trova 'g'
y#move esegue uno YANK fino a dove specificato da
"#move"
Esempio: y3j esegue lo yank di 3 linee
verso il basso oltre alla
linea corrente di partenza
y/pattern/ esegue uno YANK fino a trovare 'pattern'
(in avanti)
y?pattern? esegue uno YANK fino a trovare 'pattern'
(in dietro)
y'<chr> esegue uno YANK fino al mark 'chr' (vedere la
miscellanea per imparare come creare dei mark)
Y, yy esegue uno YANK di una linea (quella corrente)
#Y, #yy esegue uno YANK di "#" linee sottostanti
"[char]YANK copia lo YANK in 'char'
PASTE
P PASTE: incolla il contenuto del buffer prima del
cursore
p PASTE: incolla il contenuto del buffer dopo il
cursore
"<char>PASTE PASTE: incolla il buffer richiamato (char=a-z),
utilizzando uno dei comandi sopraelencati
"#PASTE PASTE: incolla il buffer numerato (#=1-9)
utilizzando uno dei comandi sopraelencati
RICERCHE
f char FIND: cerca la successiva occorrenza di 'char'
sulla linea
t char 'TIL: si sposta fino alla successiva occorrenza
di 'char' sulla linea
F char FIND: cerca la precedente occorrenza di 'char'
sulla linea
T char 'TIL: si sposta fino alla precedente occorrenza
di 'char' sulla linea
; ripete l'ultimo f, t, F o T eseguito
, capovolge l'ordine dell'ultimo f, t, F o T
eseguito
% mostra il confronto con (), [] o {}
n NEXT: ripete l'ultimo comando / o ?
N NEXT: capovolge l'ordine dell'ultimo comando
/ o ?
/string trova 'string' cercando in avanti; in aggiunta,
/string/ /string/;/str2/
sposterà il cursore sulla prima 'str2' dopo
'string'
?string trova 'string' cercando a ritroso; l'opzione ";"
?string? ha lo stesso funzionamento come sopra
/, ? utilizza la stringa usata per la ricerca
precedente
NOTA : pattern utilizzati per le ricerche con / e ?
^ inizio della linea $ fine della linea
. qualsiasi char * qualsiasi num. di chars
\< inizio di parola \> fine di parola
[str] qualsiasi char in str [^str] chars non in str
[x-y] chars compresi tra x e y