Altri Editors
Vi sono innumerevoli altri editor e ambienti di sviluppo software in Linux.
Per chi usa un editor saltuariamente, per l'editazione di soli file di configurazione, tale editor deve essere facilmente installabile,
intuitivo (sequenze di controllo tradizionali) e usabile da CLI e da collegamento remoto.
Un tale nuovo editor è micro
, Open Source, disponibile su https://github.com/zyedidia/micro
Micro
è un editor scritto in Go. Il suo comportamento è intuitivo ed è simile a quello dell'editor di Linux nano.
Micro ha le seguenti caratteristiche principali:
- è un editor per terminale, non grafico
- ha supporto per il mouse
- è un editor non modale: tutto quello che si scrive va nel testo
- i comandi sono soprattutto basati su sequenze
Ctrl-x
- i comandi sono ridefinibili
- ha svariati schemi di colore
- supporta il syntax highlighting di vari linguaggi moderni, tra cui naturalmente il Go
- ha numerosi plugins per funzionalità aggiuntive
Uso di Base di micro
Lancio
Sintassi:
micro [opzioni] [file]
Se il nome del file non è fornito, verrà richiesto
all'atto del salvataggio.
Vi sono molte opzioni per il settaggio immediato
di configurazioni. Per vederle:
micro -h
Tutto quello che si scrive è inserito immediatamente nel buffer di
editazione: non è modale.
Sono indicati di default i numeri di linea.
Comandi di salvataggio
Ctrl-S
salva il fileCtrl-Q
esce. Se il file è stato modificato chiede se salvarlo.Ctrl-O
apre un file. Si apre la linea di comando per il nome del file. IlTAB
dà autocompletamento.Esc
interrompe il comando corrente
Comandi di movimento
Le frecce si spostano nelle quattro direzioni. AnchePgUp
e PgDown
funzionano come atteso.
Si può usare il mouse per un posizionamento immediato.
Inoltre:
Ctrl-Left
va a inizio rigaCtrl-Right
va a fine rigaCtrl-Up
va a inizio fileCtrl-Down
va a fine fileAlt-Right
va all'inizio della parola seguenteAlt-Left
va all'inizio della parola precedenteCtrl-L
va a riga, chiede numero
Comandi di Delete
Backspace
cancella all'indietroDel
cancella in avantiCtrl-Backspace
cancella fino a inizio rigaShift-Ctrl-Left
cancella fino a inizio rigaCtrl-Del
cancella fino a fine rigaShift-Ctrl-Right
cancella fino a fine rigaShift-Ctrl-Up
cancella fino a inizio fileShift-Ctrl-Down
cancella fino a fine fileCtrl-Z
undo, multilivelloCtrl-Y
redo
Comandi di Copy&Paste
Si può selezionare il testo col mouse.
Con i comandi:
Shift-direzione
seleziona in quella direzioneCtrl-A
seleziona tuttoCtrl-X
cutCtrl-C
copyCtrl-V
pasteCtrl-K
cut dell'intera rigaCtrl-D
duplicazione delle riga correnteAlt-Up
muove la linea in suAlt-Down
muove la linea in giù
Attenzione:
Per poter eseguire il Cut & Paste tra Micro ed un'altra finestra dell'ambiente linux occorre aver installato il pacchetto xclip
.
sudo apt install xclip
Comandi di ricerca
Ctrl-F
ricerca: chiede stringaCtrl-N
ripete ricerca in avantiCtrl-P
ripete ricerca all'indietroEsc
esce dalla ricerca
Altri comandi
Ctrl-E
esegue comando esteso microCtrl-B
esegue comando shellCtrl-G
apre la finestra di aiutoCtrl-Q
per uscire dalla finestra di aiuto
L'editor 'ed'
Per completezza, interesse e possibiltà d'uso in procedure shell, vengono qui illustrati i comandi di 'ed', il più antico degli editor di Unix.
'ed' è un editor di linea, con pochi comandi, tipicamente di una sola lettera, ma con prefissi e suffissi
Anche 'ed' è un editor modale.
Simboli di indirizzamento
.
- linea corrente$
- ultima linea del buffern
– la linea n (numero)-
o^
- linea precedente-n
o^n
– n linee prima della corrente (numero)+
- linea seguente+n
– n linee dopo la corrente,
o%
- tutto il buffer ( come1,$
);
- da linea corrente a fine buffer ( come.,$
)/re/
- ricerca avanti a linea con espressione regolare re?re?
- ricerca indietro alla linea con re'm
– alla linea precedentemente marcata con m
Comandi principali di ed
Singola lettera con modificatori seguita da Enter.
Molti ammettono un range di linee a cui applicare il comando, poste prima e senza spazi - il default è indicato tra parentesi (le parentesi non si mettono nel comando)
(.)a
– append dopo linea corrente5a
- append dopo la riga 5+3a
- append tra tre righe in avanti
(.)i
– insert prima di linea corrente1i
- insert a inizio file
I comandi i
e a
passano a modalità inserimento. Per uscirne e tornare a modalità comando inserire .
(punto) da solo a inizio nuova riga
Altri comandi:
(.,.)d
– elimina linea o range di linee.,+5
- elimina 5 righe incluso quella corrente
(.,.)c
– elimina linea/e e inserisci (cambia linea)(.,.+1)j
– unisce linea seguente a corrente(.,.)m(.)
- muove a linea indicata(.,.)t(.)
- copia a linea indicata
ed
: scrittura e lettura file
(1,$)w
– salva il file correntew
- salva tutto il file
(1,$)w file
– scrive il buffer al file (rimpiazza se esiste)1,10w /tmp/z
- salva le prime 10 linee del file- il file corrente non cambia nome
(1,$)W file
– append del buffer al fileq
– quit; se il file è modificato segnala con?
, e la ripetizione delq
abbandona senza salvareQ
– quit senza salvare e senza pronto(1,$)wq file
– salva al file ed escewq
- salva il file corrente ed esce
(1,$)w !comando
– scrive il buffer allo standard input del comando($)r file
– inserisce nel buffer il file alla fine di default.r file
- inserisce nel buffer il file indicato alla linea corrente
($)r !comando
– inserisce nel buffer lo standard output del comandoe file
– edita il file nuovo; dare dopo il salvataggioE file
– quit senza salvare ed edita il file nuovoe !comando
– edita lo standard output del comandof file
– cambia nome al file corrente(.,.)p
– lista (stampa a video) le linee indicate, senza interruzioni(.,.)l
– lista le linee (--More-- se più schermi)(.,.)n
– lista con numeri di linea
ed
: comandi di sostituzione
(.,.)s/re/nuova_stringa/
- rimpiazza l'espressione regolare re con la nuova stringa (prima occorrenza sulla linea trovata)(.,.)s/re/nuova_stringa/n
– _n_esima occorrenza sulla linea trovata(.,.)s/re/nuova_stringa/g
– tutte le occorrenze sulla linea trovata(.,.)s
– ripete l'ultima sostituzione sulla linea correnteu
– undo dell'ultimo comando di modifica (singolo livello di undo)(.,.)g/re/comando
– applica il comando alle linee contenenti l'espressione regolare re indicata(.,.)v/re/comando
- applica il comando alle linee non contenenti re
Espressioni regolari
-
stringa
– la stringa indicata- non deve contenere caratteri riservati
-
c
– ogni singolo carattere c non riservato -
.
- ogni singolo carattere -
[xyz]
– singolo carattere tra quelli indicati tra le quadre -
[^...]
– escluso i caratteri indicati -
[x-y]
– singolo carattere nel range ASCII -
[:classe:]
- carattere della classe indicata[:alnum:] [:alpha:] [:blank:] [:cntrl:]
[:digit:] [:graph:] [:lower:] [:print:]
[:punct:] [:space:] [:upper:] [:xdigit:]
-
[^:classe:]
- carattere non nella classe indicata -
^
- inizio linea -
$
- fine linea
Ripetitori, seguono il carattere
?
- zero o una ripetizione+
- una o più ripetizioni*
- zero o più ripetizioni{n}
- esattamente n ripetizioni{n,}
- n o più ripetizioni{m,n}
- tra m ed n ripetizioni
Sottoespressioni
Una sottoespressione è racchiusa tra tonde precedute da b_backslash_: \(re\)
\n
– numero n della sottoespressione sulla linea- p.es.:
\([xy]\)\1
– xx oppure yy
- p.es.: