# nano (Italiano)

GNU nano (o nano) è un editor di testo per console, che si propone di introdurre una semplice interfaccia ed opzioni di comando molto intuitivi per la modifica base di un testo. nano è l'editor predefinito per console in distribuzioni come Ubuntu e supporta svariate funzioni, tra cui l'evidenziazione colorata della sintassi, conversione dei file di tipo DOS/Mac, controllo ortografico e la codifica UTF-8. L'avvio di nano con un buffer vuoto occupa in genere meno di 1,5 MB di memoria. Una immagine di nano.

## Installazione

nano è incluso nel repository ufficiale di Arch Linux [core] e, generalmente, viene installato di default.

## Configurazione

### Creare il file `~/.nanorc`

L'aspetto e la funzione di nano è in genere controllata per mezzo sia di argomenti espressi da riga di comando, sia di comandi di configurazione presenti all'interno del file `~/.nanorc`. Un file di configurazione di esempio viene allocato con l'installazione del programma e lo potete trovare in `/etc/nanorc`. Il file `~/.nanorc` deve essere prima creato dall'utente:

    $ cd ~
    $ touch .nanorc

oppure copiare il file di default nella propria home

    $ cp /etc/nanorc ~/.nanorc

Si può procedere a stabilire le varie variabili di configurazione semplicemente commentando/decommentando i vari comandi presenti in `.nanorc`.

Tip: Nella pagina NANORC è elencata la lista completa dei vari comandi di configurazione avviabili in nano.
Nota: Gli argomenti a riga di comando sovrascrinono e prevalgono sui comandi di configurazione stabiliti in `.nanorc`.

### Evidenziazione della sintassi

#### PKGBUILD

Questa è nuova versione per Arch Linux "svntogit-server".

    # Arch PKGBUILD files
    #
    syntax "pkgbuild" "^.*PKGBUILD*"
    # commands
    color red "\<(cd|echo|enable|exec|export|kill|popd|pushd|read|source|touch|type)\>"
    color brightblack "\<(case|cat|chmod|chown|cp|diff|do|done|elif|else|esac|exit|fi|find|for|ftp|function|grep|gzip|if|in)\>"
    color brightblack "\<(install|ln|local|make|mv|patch|return|rm|sed|select|shift|sleep|tar|then|time|until|while|yes)\>"
    # ${*}
    icolor blue "\$\{?[0-9A-Z_!@#$*?-]+\}?"
    # numerics
    color blue "\ [0-9]*"
    color blue "\.[0-9]*"
    color blue "\-[0-9]*"
    color blue "=[0-9]"
    # spaces
    color ,green "[[:space:]]+$"
    # strings; multilines are not supported
    color brightred ""(\\.|[^"])*"" "'(\\.|[^'])*'"
    # comments
    color brightblack "#.*$"

Questa è un'altra versione discussa qui.

    /usr/share/nano/pkgbuild.nanorc

     ## Arch PKGBUILD files
     ##
     syntax "pkgbuild" "^.*PKGBUILD$"
     color green start="^." end="$"
     color cyan "^.*(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license).*=.*$"
     color brightcyan "\<(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license)\>"
     color brightcyan "(\$|\$\{|\$\()(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license)(|\}|\))"
     color cyan "^.*(depends|makedepends|optdepends|conflicts|provides|replaces).*=.*$"
     color brightcyan "\<(depends|makedepends|optdepends|conflicts|provides|replaces)\>"
     color brightcyan "(\$|\$\{|\$\()(depends|makedepends|optdepends|conflicts|provides|replaces)(|\}|\))"
     color cyan "^.*(groups|backup|noextract|options).*=.*$"
     color brightcyan "\<(groups|backup|noextract|options)\>"
     color brightcyan "(\$|\$\{|\$\()(groups|backup|noextract|options)(|\}|\))"
     color cyan "^.*(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums).*=.*$"
     color brightcyan "\<(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums)\>"
     color brightcyan "(\$|\$\{|\$\()(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums)(|\}|\))"
     color brightcyan "\<(startdir|srcdir|pkgdir)\>"
     color cyan "\.install"
     color brightwhite "=" "'" "\(" "\)" "\"" "#.*$" "\," "\{" "\}"
     color brightred "build\(\)"
     color brightred "package_.*.*$"
     color brightred "\<(configure|make|cmake|scons)\>"
     color red "\<(DESTDIR|PREFIX|prefix|sysconfdir|datadir|libdir|includedir|mandir|infodir)\>"

Per poterla utilizzare salvatela come /usr/share/nano/pkgbuild.nanorc e aggiungete:

    include "/usr/share/nano/pkgbuild.nanorc"

nel vostro file `~/.nanorc` oppure in `/etc/nanorc`.

#### Altri file

Installare il pacchetto AUR: nano-syntax-highlighting-gitAUR.

### Configurazione consigliata

#### Sospensione

A differenza di molti programmi interattivi, la sospensione non è abilitata di default. Per modificare questo comportamento, decommentate la linea

    set suspend

in `/etc/nanorc`. Questo vi permetterà di utilizzare i tasti `Ctrl + z` per inviare nano in background.

#### Non avvolgimento del testo

Provenendo da un'altra distro, il comportamento di nano potrebbe risultare anomalo; basterà modificare il file `/etc/nanorc` in questo modo:

    ## Don't wrap text at all.
    set nowrap

## Utilizzo di nano

### Funzioni Speciali

La notazione per i tasti di scelta rapida è la seguente:

- Le sequenze identificate con il simbolo `^` sono introdotte usando il tasto Control (`Ctrl`), oppure premendo il tasto `Esc` due volte.

- Le sequenze identificate col simbolo Meta `M` possono essere inserite usato alternativamente il tasto `Esc`, `Alt` o `Meta`, a seconda della configurazione della tastiera. Inoltre, premendo `Esc` due volte e digitando i numeri da 000 a 255 si possono inserire i caratteri con il codice ASCII corrispondente.

#### Panoramica sui tasti di scelta rapida

- `Ctrl`+`G` Aiuto (`F1`)

  Consente di visualizzare la Guida in linea all'interno della finestra di sessione. Se ne consiglia la lettura.

- `Ctrl`+`O` Salva (`F3`)

  Salva il file corrente su disco

- `Ctrl`+`R` Inserisci (`F5`)

  Inserisce un altro file nella posizione corrente del cursore

- `Ctrl`+`Y` Pagina precedente (`F7`)

  Mostra la schermata precedente

- `Ctrl`+`K` Taglia (`F9`)

  Taglia la riga corrente e la memorizza nel cutbuffer

- `Ctrl`+`C` Posizione (`F11`)

  Mostra la posizione del cursore dando informazioni sulla linea, colonna e carattere

- `Ctrl`+`X` Esci (`F2`)

  Chiude ed esce da nano, se il file è stato modificato ne chiede il salvataggio

- `Ctrl`+`J` Giustifica (`F4`)

  Giustifica il paragrafo corrente in base alla geometria della finestra

- `Ctrl`+`W` Cerca (`F6`)

  Cerca una stringa o un'espressione regolare

- `Ctrl`+`V` Pagina successiva (`F8`)

  Mostra la schermata successiva

- `Ctrl`+`U` Incolla (`F10`)

  Incolla dal cutbuffer nella riga corrente

- `Ctrl`+`T` Ortografia (`F12`)

  Esegue il correttore ortografico, se disponibile, utilizza spell

Tip: Consultare l'aiuto in linea di nano tramite `Ctrl + g` all'interno dell'editor e il manuale dei comandi di nano per una completa descrizione e supporto addizionale.

#### Abilitazione/Disabilitazione delle funzioni speciali

- `Meta + c` (or `Esc + c`)

  Abilita/disabilita la visualizzazione della posizione del cursore.

- `Meta + i` (or `Esc + i`)

  Abilita/disabilita l'indentazione automatica

- `Meta + k` (or `Esc + k`)

  Abilita/disabilita la possibilità di tagliare la riga intera nella posizione del cursore

- `Meta + m` (or `Esc + m`)

  Abilita/disabilita il supporto del mouse

- `Meta + x` (or `Esc + x`)

  Abilita/disabilita la visualizzazione della barra inferiore dei comandi

Tip: La pagina sulle caratteristiche aggiuntive elenca tutte le alternative disponibili in nano.

## Suggerimenti

### Sostituire vi con nano

Molti utenti preferiscono utilizzare `nano` al posto di `vi` poiché risulta più semplice e facile da utilizzare, inoltre possono scegliere di sostituire `vi` con `nano` come editor predefinito per i comandi di testo come visudo.

#### Primo metodo

Attenzione: Dal `man 8 visudo`: Si noti che questo metodo potrebbe compromettere la sicurezza in quanto permette all'utente di eseguire qualsiasi programma che desiderano semplicemente impostando le variabili VISUAL o EDITOR.

sudo reperibile nel repository core, è compilato in modo predefinito con l'opzione `--with-env-editor` e rispetta l'uso delle variabili `VISUAL` ed `EDITOR`. Per poter stabilire di utilizzare nano come editor per il comando visudo per tutta la durata della sessione corrente della console, bisogna impostare ed esportare la variabile `EDITOR` prima di chiamare visudo.

    export EDITOR=nano

##### Esempio di utilizzo

     export EDITOR=nano && sudo visudo

#### Secondo metodo

Attenzione: Dal `man 8 visudo`: Si noti che questo metodo potrebbe compromettere la sicurezza in quanto permette all'utente di eseguire qualsiasi programma che desiderano semplicemente impostando le variabili VISUAL o EDITOR.

La variabile EDITOR può anche essere impostata all'interno dei seguenti file per un uso persistente:

- ~/.bash_profile (shell di login)
- ~/.bashrc (shell interattiva, non di login)
- `/etc/profile` (impostazioni globali per tutti gli utenti del sistema, tranne `root`)

##### Esempio di `.bash_profile`

    . $HOME/.bashrc

    export EDITOR=nano
    export GREP_COLOR="1;33"

    if [[ -z "$DISPLAY" ]] && [[ $(tty) = /dev/vc/1 ]]; then
      startx
      logout
    fi

#### Terzo Metodo

Nota: Questo metodo può essere considerato draconiano e potrebbe non essere adatto a tutti gli utenti. Tuttavia, la seguente procedura esiste come esempio di una soluzione praticabile.

##### Link simbolici

come root, o tramite il comando `su -`

Rinominare l'eseguibile `vi` in `vi.old` per un semplice ripristino:

    # mv /usr/bin/vi /usr/bin/vi.old

Creare un link simbolico da `/usr/bin/nano` a `/usr/bin/vi`:

    # ln -s /usr/bin/nano /usr/bin/vi

Nota: Questo link simbolico andrà ricreato ad ogni aggiornamento di `Vi`.

##### Ripristino di `vi`

Rimuovere il link simbolico `/usr/bin/vi`:

    # unlink /usr/bin/vi

Rinominare l'eseguibile `vi.old` a `vi`:

    # mv /usr/bin/vi.old /usr/bin/vi

#### Quarto metodo

Nota: Questo metodo può essere considerato draconiano e potrebbe non essere adatto a tutti gli utenti. Tuttavia, la seguente procedura esiste come esempio di una soluzione praticabile.

##### Rimozione e link simbolici

Usare pacman per rimuovere `vi`, le sue configuazioni e le dipendenze:

    # pacman -Rns vi

Creare il link simbolico da `/usr/bin/nano` a `/usr/bin/vi`:

    # ln -s /usr/bin/nano /usr/bin/vi

##### Rispristino di `vi`

Rimuovere il link simbolico `/usr/bin/vi`

    # unlink /usr/bin/vi

Utilizzare pacman per installare il pacchetto `vi` precedentemente disinstallato.

    # pacman -S vi

Nota: Non pulire `-c` o aggiornare `-y` il database dei pacchetti, se volete mantenere la versione precedentemente installata del pacchetto `vi`. In questo caso, gli aggiornamenti successivi richiederanno anche l'uso giudizioso dell'opzione `--ignore vi` (ed in modo facoltativo di `--ignore glibc ncurses coreutils`.

## Fonti esterne

- nano (text editor) - Articolo Wikipedia inglese
- GNU nano Homepage - Sito Ufficiale
- GNU nano Bugs - Segnalazione Bug
- Better syntax highlighting definitions

Category:

- Text editors (Italiano)