Altri Editors

Micro

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 file
  • Ctrl-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. Il TAB 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 riga
  • Ctrl-Right va a fine riga
  • Ctrl-Up va a inizio file
  • Ctrl-Down va a fine file
  • Alt-Right va all'inizio della parola seguente
  • Alt-Left va all'inizio della parola precedente
  • Ctrl-L va a riga, chiede numero

Comandi di Delete

  • Backspace cancella all'indietro
  • Del cancella in avanti
  • Ctrl-Backspace cancella fino a inizio riga
  • Shift-Ctrl-Left cancella fino a inizio riga
  • Ctrl-Del cancella fino a fine riga
  • Shift-Ctrl-Right cancella fino a fine riga
  • Shift-Ctrl-Up cancella fino a inizio file
  • Shift-Ctrl-Down cancella fino a fine file
  • Ctrl-Z undo, multilivello
  • Ctrl-Y redo

Comandi di Copy&Paste

Si può selezionare il testo col mouse.
Con i comandi:

  • Shift-direzione seleziona in quella direzione
  • Ctrl-A seleziona tutto
  • Ctrl-X cut
  • Ctrl-C copy
  • Ctrl-V paste
  • Ctrl-K cut dell'intera riga
  • Ctrl-D duplicazione delle riga corrente
  • Alt-Up muove la linea in su
  • Alt-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 stringa
  • Ctrl-N ripete ricerca in avanti
  • Ctrl-P ripete ricerca all'indietro
  • Esc esce dalla ricerca

Altri comandi

  • Ctrl-E esegue comando esteso micro
  • Ctrl-Besegue comando shell
  • Ctrl-G apre la finestra di aiuto
  • Ctrl-Q per uscire dalla finestra di aiuto

L'editor 'ed'

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 buffer
  • n – la linea n (numero)
  • - o ^ - linea precedente
  • -n o ^nn linee prima della corrente (numero)
  • + - linea seguente
  • +nn linee dopo la corrente
  • , o % - tutto il buffer ( come 1,$ )
  • ; - 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 corrente
    • 5a - append dopo la riga 5
    • +3a - append tra tre righe in avanti
  • (.)i – insert prima di linea corrente
    • 1i - 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 corrente
    • w - 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 file
  • q – quit; se il file è modificato segnala con ?, e la ripetizione del q abbandona senza salvare
  • Q – quit senza salvare e senza pronto
  • (1,$)wq file – salva al file ed esce
    • wq - 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 comando
  • e file – edita il file nuovo; dare dopo il salvataggio
  • E file – quit senza salvare ed edita il file nuovo
  • e !comando – edita lo standard output del comando
  • f 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 corrente
  • u – 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]\)\1xx oppure yy