Sei sulla pagina 1di 6

CAPITOLO 5

GLI EDITOR DI UNIX


Gli editor di testo UNIX sono programmi che permettono di creare e modificare
semplici documenti di testo. UNIX include almeno due editor di testi, vi ed Emacs, ma
vi lunico che siamo sicuri di trovare in qualsiasi variante di UNIX.
Sezione A - Leditor vi
vi (visual editor) stato scritto per essere utilizzabile con qualsiasi tipo di terminale.
Per invocare vi diamo il comando

$ vi filename
Che invoca leditor di testo, aprendo il file
creato).
vi ha

filename (se tale file non esiste, viene

tre modalit:
Edit mode, allavvio di vi si in questa modalit;
Insert mode;
Command mode.

EDIT MODE
La modalit di edit usata principalmente per muovere il cursore nel punto di
interesse allinterno del file di testo che si sta editando.
Quindi, volendo spostare il cursore, la prima cosa da fare accertarsi di essere in
questa modalit.
Comando
Effetto
Sposta il cursore a sinistra di un carattere
h (freccia

sinistra)
l (o freccia
destra)
k (o freccia
su)
j (o freccia
gi)
Ctrl+u
Ctrl+d
Ctrl+f (o pag
gi)
Ctrl+b (o
pag su)
H
L
M
G
nG

Sposta il cursore a destra di un carattere


Sposta il cursore su di una riga
Sposta il cursore gi di una riga
Muove il cursore su di mezza schermata
Muove il cursore gi di mezza schermata
Muove il cursore avanti di una schermata
Muove il cursore indietro di una schermata
Sposta il cursore nellangolo superiore sinistro dello schermo
Sposta il cursore allultima riga sullo schermo
Sposta il cursore nel mezzo dello schermo
Si usa per andare allinizio dellultima riga.
possibile includere un numero prima del comando per indicare a
quale riga spostarsi.
Passa allinizio della n-esima riga

w
b
0

$
/string
?string
n
nrC
nx
ndw
ndb
ndd
d$
d0
J
p
P
yy
nyy
u
.
ZZ

Muove il cursore allinizio della parola successiva


Muove il cursore allinizio della parola precedente
Muove il cursore allinizio della linea corrente
Muove il cursore nella posizione del primo carattere della linea che
non sia un whitespace
Muove il cursore alla fine della linea corrente
Cerca nel file la stringa string
Cerca allindietro nel file la stringa string
Cerca loccorrenza della stringa successiva (in avanti o allindietro)
Rimpiazza n caratteri con c a partire dalla posizione del cursore
Cancella n caratteri dalla posizione del cursore
Cancella n parole dalla posizione del cursore
Cancella n parole prima del cursore
Cancella n linee a partire da quella del cursore
Cancella tutti i caratteri dalla posizione del cursore fino alla fine
della linea
Cancella tutti i caratteri dalla posizione del cursore fino allinizio
della linea
Unisce la linea corrente alla successiva
Incolla il testo copiato/cancellato a destra del cursore
Incolla il testo copiato/cancellato a sinistra del cursore
Copia la riga corrente in memoria
Copia n righe in memoria a partire dalla posizione del cursore
Annulla lultimo comando
Ripete lultimo comando
Termina lesecuzione di vi, salvando le modifiche

Dopo aver aperto il file su cui si desidera scrivere, occorre digitare i, questo comando
non viene visualizzato sullo schermo (come la maggior parte dei comandi di vi), ma
consente di passare alla modalit di inserimento; non occorre premere Invio per
indicare il completamento del comando.
INSERT MODE
Siccome ledit mode utilizza un gran numero di tasti alfanumerici, per inserire del testo
in un file si rende necessaria unaltra modalit: linsert mode.
Se viene premuto il tasto l (minuscolo) si entra in modalit di inserimento, insert
mode, nella quale ogni tasto premuto viene visualizzato sullo schermo e memorizzato
nelleditor.
Comando

i
a
I
A
o
O

Effetto
Inserisce del testo alla sinistra del cursore (testo prima del cursore)
Inserisce del testo alla destra del cursore (testo dopo il cursore)
Inserisce del testo allinizio della linea corrente
Inserisce del testo alla fine della linea corrente
Inserisce una nuova linea sotto la posizione del cursore
Inserisce una nuova linea sopra la posizione del cursore

Nellinserimento del testo si preme Backspace per eliminare caratteri, invece si preme
Invio alla fine di ogni riga per passare a quella successiva.

In modalit di inserimento, tutti i caratteri digitati appaiono sullo schermo.


Per uscire dalla modalit di inserimento, si preme Esc fin quando INSERT non
pi visualizzato.

COMMAND MODE
Tutti i comandi del command mode iniziano con i due punti (:); dopo aver inserito tale
carattere il cursore si sposta nellultima riga dello schermo, dove compaiono i caratteri
del comando successivamente digitati.
In questa modalit, ad ogni carattere della tastiera associato un comando.
La pressione del tasto Invio provoca lesecuzione del comando.
Comando

:q
:q!
:w
:wq
:w file
:r file
:e file
:f file
:f
:n
:/str/
:s/str1/str2/
:set option

Effetto
Termina vi se non vi sono delle modifiche non salvate
Termina vi perdendo le eventuali modifiche non salvate
Salva il file originale
Salva il file originale e termina vi (stesso effetto di ZZ)
Salva il contenuto nel file file
Legge il contenuto del file file, inserendolo dopo la posizione del
cursore
Edita il file file, sostituendo il contenuto del file corrente
Cambia il nome del contenuto corrente in file
Stampa il nome e lo stato del testo corrente
Sposta il cursore alla linea n
Sposta il cursore alla prossima linea contenente str
Sostituisce la prima occorrenza di str1 sulla linea con str2
Definisce unopzione (ad es.
linea)

:set number aggiunge i numeri di

Sezione B Leditor Emacs/XEmacs


Emacs, Editor Macros, unapplicativo che non fa parte di UNIX; stato scritto da R.
Stallman nel 1975.
Si pu avviare Emacs digitando il comando emacs: se dopo questo comando si
inserisce un nome di file, Emacs crea un nuovo file vuoto con quel nome, oppure apre
un file esistente con quel nome.
Digitando il prompt

$ emacs <file>
si apre una finestra in cui viene visualizzato il contenuto del file <file>, che pu essere
editato normalmente.
Tale contenuto memorizzato in un buffer (struttura dati interna di Emacs).
Ci sono due modi per accedere ai comandi di editing:
Barra dei menu;
Caratteri di controllo.

CARATTERI DI CONTROLLO
Ci sono due categorie di caratteri di controllo:
1. Sequenza che iniziano con Ctrl (abbrev. C); ad esempio C-h t (esegue il tutorial)
2. Sequenze che iniziano con meta (tasto Alt o Esc, abbrev. M); ad esempio il
prefisso M-x
Esistono dei prefissi standard di Emacs, ovvero delle sequenze di caratteri, che, se
completate opportunamente, costituiscono un comando:
C-c
C-x
C-h
C-x 4
Ad esempio:
- La finestra da Emacs pu essere suddivisa in due finestre con la sequenza C-x
2.
- Per ingrandire la finestra su cui si sta lavorando e chiudere laltra si usa la
sequenza C-x 1.
MODE LINE
La mode line si trova sotto la finestra e fornisce informazioni su:
Lo stato del buffer contenente il file che si sta editando;
Il nome del file;
La percentuale del file visibile (ad esempio, quella che sta nella finestra);
Il modo:
- Fundamental (default)
- Text (testo inglese)
- Lisp mode
- C mode
Minibuffer e alcuni comandi utili
Sotto la mode line si trova il minibuffer, che una parte dellinterfaccia di Emacs che
si occupa di visualizzare e di permettere allutente di editare/completare i comandi.
Comando

M-x textmode
C-h m
C-x C-f file
C-x C-s
C<Spacebar>
M-w
C-w
C-y
C-x u
C-x C-c

Effetto
Cambia il major mode in text (modalit testo inglese)
Informazioni sul modo corrente
Apre il file file
Salva il buffer corrente
Imposta il mark (inizio regione di testo su cui eseguire un comando
in seguito)
Copia la regione di testo compresa fra il mark e la posizione del
cursore
Taglia la regione di testo compresa tra il mark e la posizione del
cursore
Incolla la regione di testo copiata/tagliata in precedenza
Undo (annulla loperazione precedente)
Termina Emacs

Sezione C Leditor nano

Per lanciare questo editor sufficiente lanciare il comando


file che si vuole modificare.

nano seguito dal nome del

Per muoversi all'interno del file si possono usare i tasti cursore, i tasti PAGUP,
PAGDOWN, HOME e END. Essendo un editor testuale, con molta probabilit il mouse
non funzioner.
Durante l'editing del file possibile effettuare il salvataggio con la combinazione
CTRL+O, ogni volta verr richiesto se salvare il file con lo stesso nome.
APRIRE E CREARE FILE
Aprire e creare file con nano semplice, basta digitare:

# nano filename
Nano un editor "modeless" (senza una modalit comandi, presente invece in altri
editor come vim, NdT), quindi si pu iniziare subito a scrivere per inserire del testo.
Se si sta modificando un file di configurazione come /etc/fstab bene usare
l'opzione -w, in questo modo:# nano -w /etc/fstab
molto, molto importante usare l'opzione -w quando si apre un file di
configurazione. Non farlo potrebbe portare il sistema a non avviarsi o causare
altri problemi poco simpatici (con questa opzione si evita che righe lunghe
vengano spezzate, cosa che non deve accadere nei file di configurazione, NdT).
SALVARE E USCIRE
Se si vuole salvare le modifiche apportate al testo, premere Ctrl+O.
Per uscire da nano, digitare Ctrl+X. Se si cerca di uscire da nano dopo aver apportato
delle modifiche ad un file, verr chiesto se tali modifiche devono essere salvate o
meno. Premere N per uscire da nano senza salvare, premere Y (S nella versione
italiana) per effettuare il salvataggio.
Verr quindi chiesto un nome per il file. Scriverlo e premere Invio.
Se per errore stato confermato il salvataggio del file, si pu sempre annullare
l'operazione premendo Ctrl+C quando viene chiesto il nome del file (si torna cos a
nano senza aver scritto su disco le modifiche apportate, NdT).
TAGLIA E INCOLLA
Per tagliare una singola linea usare il comando Ctrl+K (tenere premuto Ctrl e poi
premere K). La linea sparir. Per incollarla, muovere semplicemente il cursore dove si
vuole inserirla e premere Ctrl+U. La linea riapparir. Per muovere pi linee
contemporaneamente, basta semplicemente tagliarle utilizzando Ctrl+K pi volte (una
volta per ogni riga) e poi incollarle tutte con una unica pressione di Ctrl+U. L'intero
paragrafo apparir in qualsiasi posizione si voglia.
Se si necessita di un controllo pi preciso, necessario evidenziare il testo prima di
tagliarlo. Posizionare il cursore all'inizio del testo da tagliare. Premere Ctrl+6 (oppure
Alt+A). Ora spostare il cursore alla fine del testo da tagliare: il testo selezionato verr
evidenziato. Se si vuole annullare la selezione, premere di nuovo Ctrl+6. Premere
invece Ctrl+K per tagliare il testo evidenziato. Usare Ctrl+U per incollarlo.

CERCARE DEL TESTO


Cercare una stringa nel testo facile e pi veloce di quanto si possa pensare (sar
ancora pi facile se si pensa a "Where is" anzich a "Search"). sufficiente usare il
comando Ctrl+W, scrivere la stringa da cercare e premere Invio. Il cursore si porter
alla prima parola che corrisponde alla stringa cercata.
Per cercare di nuovo la stessa stringa usare la combinazione di tasti Alt+W.
Se si vuole annullare la ricerca o un qualsiasi comando, premere CTRL+C.
Nei testi di aiuto di nano il tasto Ctrl rappresentato da un segno di omissione
(accento circonflesso, ^), quindi la combinazione di tasti Ctrl+W sar mostrata
come ^W, e cos via. Il tasto Alt rappresentato invece da una M (che sta per
"Meta"), quindi Alt+W sar mostrato come M-W.