arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
374 lines (236 loc) • 13.8 kB
Markdown
[GNU nano](http://www.nano-editor.org/) (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](https://it.wikipedia.org/wiki/UTF-8). L'avvio di nano con un buffer vuoto occupa in genere meno di 1,5 MB di memoria. [Una immagine di nano](http://i275.photobucket.com/albums/jj281/adamchrista/Arch%20Linux/Wiki%20Examples/nano-man.png).
## Contents
* [1 Installazione](#Installazione)
* [2 Configurazione](#Configurazione)
* [2.1 Creare il file ~/.nanorc](#Creare_il_file_.7E.2F.nanorc)
* [2.2 Evidenziazione della sintassi](#Evidenziazione_della_sintassi)
* [2.2.1 PKGBUILD](#PKGBUILD)
* [2.2.2 Altri file](#Altri_file)
* [2.3 Configurazione consigliata](#Configurazione_consigliata)
* [2.3.1 Sospensione](#Sospensione)
* [2.3.2 Non avvolgimento del testo](#Non_avvolgimento_del_testo)
* [3 Utilizzo di nano](#Utilizzo_di_nano)
* [3.1 Funzioni Speciali](#Funzioni_Speciali)
* [3.1.1 Panoramica sui tasti di scelta rapida](#Panoramica_sui_tasti_di_scelta_rapida)
* [3.1.2 Abilitazione/Disabilitazione delle funzioni speciali](#Abilitazione.2FDisabilitazione_delle_funzioni_speciali)
* [4 Suggerimenti](#Suggerimenti)
* [4.1 Sostituire vi con nano](#Sostituire_vi_con_nano)
* [4.1.1 Primo metodo](#Primo_metodo)
* [4.1.1.1 Esempio di utilizzo](#Esempio_di_utilizzo)
* [4.1.2 Secondo metodo](#Secondo_metodo)
* [4.1.2.1 Esempio di .bash_profile](#Esempio_di_.bash_profile)
* [4.1.3 Terzo Metodo](#Terzo_Metodo)
* [4.1.3.1 Link simbolici](#Link_simbolici)
* [4.1.3.2 Ripristino di vi](#Ripristino_di_vi)
* [4.1.4 Quarto metodo](#Quarto_metodo)
* [4.1.4.1 Rimozione e link simbolici](#Rimozione_e_link_simbolici)
* [4.1.4.2 Rispristino di vi](#Rispristino_di_vi)
* [5 Fonti esterne](#Fonti_esterne)
## Installazione
[nano](https://www.archlinux.org/packages/?name=nano) è incluso nel [repository ufficiale di Arch Linux [core]](/index.php/Official_repositories_(Italiano) "Official repositories (Italiano)") 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](http://www.nano-editor.org/dist/v2.2/nanorc.5.html) è 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"](https://projects.archlinux.org/svntogit/packages.git/tree).
```
# 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](https://bbs.archlinux.org/viewtopic.php?pid=565476).
`/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](/index.php/AUR_(Italiano) "AUR (Italiano)"): [nano-syntax-highlighting-git](https://aur.archlinux.org/packages/nano-syntax-highlighting-git/).
### 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](http://www.nano-editor.org/dist/v2.1/nano.html) 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](http://www.nano-editor.org/dist/v2.1/nano.html#Feature-Toggles) 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 [visudo(8)](http://jlk.fjfi.cvut.cz/arch/manpages/man/visudo.8): *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](/index.php/Sudo_(Italiano) "Sudo (Italiano)") 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 [visudo(8)](http://jlk.fjfi.cvut.cz/arch/manpages/man/visudo.8): *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](http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files) (shell di login)
* ~/.bashrc (shell interattiva, non di login)
* [`/etc/profile`](http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files) (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](/index.php/Pacman_(Italiano) "Pacman (Italiano)") 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)](https://en.wikipedia.org/wiki/Nano_(text_editor) - Articolo Wikipedia inglese
* [GNU nano Homepage](http://www.nano-editor.org/) - Sito Ufficiale
* [GNU nano Bugs](https://savannah.gnu.org/bugs/?group=nano) - Segnalazione Bug
* [Better syntax highlighting definitions](https://github.com/craigbarnes/nanorc)