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-Ssalva il fileCtrl-Qesce. Se il file è stato modificato chiede se salvarlo.Ctrl-Oapre un file. Si apre la linea di comando per il nome del file. IlTABdà autocompletamento.Escinterrompe 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-Leftva a inizio rigaCtrl-Rightva a fine rigaCtrl-Upva a inizio fileCtrl-Downva a fine fileAlt-Rightva all'inizio della parola seguenteAlt-Leftva all'inizio della parola precedenteCtrl-Lva a riga, chiede numero
Comandi di Delete
Backspacecancella all'indietroDelcancella in avantiCtrl-Backspacecancella fino a inizio rigaShift-Ctrl-Leftcancella fino a inizio rigaCtrl-Delcancella fino a fine rigaShift-Ctrl-Rightcancella fino a fine rigaShift-Ctrl-Upcancella fino a inizio fileShift-Ctrl-Downcancella fino a fine fileCtrl-Zundo, multilivelloCtrl-Yredo
Comandi di Copy&Paste
Si può selezionare il testo col mouse.
Con i comandi:
Shift-direzioneseleziona in quella direzioneCtrl-Aseleziona tuttoCtrl-XcutCtrl-CcopyCtrl-VpasteCtrl-Kcut dell'intera rigaCtrl-Dduplicazione delle riga correnteAlt-Upmuove la linea in suAlt-Downmuove 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-Fricerca: chiede stringaCtrl-Nripete ricerca in avantiCtrl-Pripete ricerca all'indietroEscesce dalla ricerca
Altri comandi
Ctrl-Eesegue comando esteso microCtrl-Besegue comando shellCtrl-Gapre la finestra di aiutoCtrl-Qper 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-no^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 delqabbandona 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 bbackslash: \(re\)
\n– numero n della sottoespressione sulla linea- p.es.:
\([xy]\)\1– xx oppure yy
- p.es.: