Le abbreviazioni valgono per l'INPUT MODE e sono una
generalizzazione delle macro; permettono di digitare una i
breve parola ottenendone l'espansione (alla pressione della
barra spaziatrice) in una sequenza qualsiasi di caratteri.
Per tale scopo esiste la direttiva 'ab'.
Esempio:
:ab US UNIVERSITA` DEGLI STUDI
La direttiva 'unab' rimuove le abbreviazioni.
Esempio:
:unab US
Come già accennato, le opzioni, le macro e le abbreviazioni
possono essere attivate non solo dall'interno dell'editor, ma
anche da shell; questo avviene assegnando alla variabile EXINIT la
sequenza di comandi necessari per la attivazione, separati
unicamente dal simbolo di pipe ('|').
In tal caso non si dimentichi di esportare la variabile EXINIT.
Esempio:
EXINIT='set ai nu | ab US UNIVERSITA` DEGLI STUDI'
export EXINIT
Volendo automatizzare questa assegnazione, in modo che l'utente
non sia costretto a digitarlo ogni volta che accede al sistema,
va inserito nel file di inizializzazione per l'utente (.profile
per sh, .login/.cshrc per csh e tcsh).
Qui di seguito troverete elencati alcuni tra i molti suggerimenti
possibili per risolvere problemi frequenti:
Per cancellare una parola: dw
Per cancellare più parole: d#w
(dove '#' è il numero delle parole da cancellare)
Per cancellare dalla posizione corrente fino a
'parola': d/parola
Per cancellare 5 linee e metterle in un
buffer 'a': "a5dd
Per cancellare la frase corrente fino al
punto di posizionamento del cursore: d(
Per cancellare la parte restante di un
paragrafo dove si è posizionati: d}
Per cambiare una parola: cw
Per invertire l'ordine dei caratteri: xp
Per trasformare una parola inglese in plurale
(aggiunta della 's' finale): eas
Per cancellare fino all'inizio di una linea: d0
Per memorizzare 3 parole nel buffer 'x': "xy3w
Per memorizzare nel buffer 's' 5 linee, a
partire dalla corrente, e stamparle sopra di essa: "s5YP
Per ricercare e visualizzare tutte le linee che
contengono la stringa 'pattern': :g/pattern/p
Per ricercare e visualizzare attraverso il
contenuto dei buffer numerati:
"1pu.u.u ('u' e '.' alternativamente)
Per sostituire completamente 'str' con 'replace':
:g/str/s//replace/[g][c]
Per sostituire una parola ('old') con un'altra ('new')
in tutto il file:
:%s/old/new/g
mentre per avere un prompt di conferma ad ogni sostituzione:
:%s/old/new/gc
Utilizzo di 'word erase' o 'line erase' in fase di inserimento
per sostituire quello che si è appena scritto.
Esempi:
hello tim^W riposiziona il cursore sulla 't' di "tim"
hello tim^U riposiziona il cursore all'inizio della linea
Poichè queste key possono essere redefinite, controllare il
loro stato attraverso il comando Unix:
stty -a
controllando 'werase' e 'kill'
Per copiare un gruppo di linee da un file all'altro:
salvare il file corrente utilizzando ':w'
editare il file contenente i dati richiesti, utilizzando
':e <filename>'
eseguire ora un yank delle linee desiderate in un buffer;
ad esempio, '"a3Y' eseguirà uno yank di 3 linee nel
buffer 'a'
editare il file originale utilizzando ':e! <filename>'
posizionare il cursore nel posto desiderato; utilizzando il
comando '"ap' o '"aP' il testo contenuto nel buffer 'a'
verrà copiato
Per ritornare alla posizione del file precedentemente editato,
utilizzare:
CTRL^ (tenere premuto il tasto 'control' mentre si preme
il tasto '^')
questo è un modo abbreviato per sostituire il comando ':e #'
Per commentare linee in linguaggio C (/*...*/) è possibile
definire delle map sui caratteri come 'v' e 'V' nella seguente
maniera:
map v I/*^[$a*/^[^M
map V /\/\*/^MNxx/\*\//^Mxx``
il carattere 'v' commenterà una singola linea, mettendo
'/*' e '*/' rispettivamente all'inizio e alla fine della linea,
mentre 'V' rimuoverà questi da una linea o da un paragrafo
commentati (è necessario essere all'inizio oppure all'interno
dei commenti)
Per stampare un certo range di linee direttamente sulla
stampante, senza doverle salvare attraverso un file:
:#1,#2 w !lpr
invierà le linee da #1 a #2 alla stampante di default
Le linee cancellate possono essere recuperate passando
attraverso i buffer numerati; tali buffer, numerati da 1 a 9,
contengono le ultime 9 cancellazioni effettuate. Per passare
attraverso i buffer:
digitare: "1p visualizzerà il buffer #1
digitare: u eliminerà la copia dei dati
digitare: . eseguirà l'ultimo comando '"1p'
ma solo in questo unico caso
aggiunge 1 ed esegue il comando
'.', che corrisponde a '"2p';
all'esecuzione successiva, '.'
corrisponde a '"3p'
quando si trova il buffer corretto è sufficiente tenere
il ripristino effettuato.
Per marcare una parte di testo, si utilizza 'm' seguito da una
lettera. Esempio:
m a all'inizio del testo da marcare
m b alla fine del testo da marcare
È possibile copiare successivamente tale parte nel punto del
testo ove è posizionato il cursore:
:'a,'b co .
oppure è possibile spostarla:
:'a,'b mo .
o ancora cancellarla:
:'a,'b del .