# Manuale utente di &app;

## Introduzione

&app; è uno strumento grafico per l'unione e il confronto di file di testo. &app; è in grado di confrontare uno a fianco all'altro un qualsiasi numero di file e fornisce all'utente la possibilità di correggere manualmente la corrispondenza fra le righe e di modificare i file. &app; è anche in grado di recuperare le revisioni dei file dai repository Bazaar, CVS, Darcs, Git, Mercurial, Monotone, RCS, Subversion e SVK per confrontarle e unirle.

### Informazioni

&app; è stato scritto da Derrick Moser derrick_moser@yahoo.com.

© &app-year; Derrick Moser. Tutti i diritti riservati.

### Licenza

&app; è software libero; è possibile ridistribuirlo e modificarlo nel rispetto dei termini della GNU General Public License come pubblicata dalla Free Software Foundation sia essa nella versione 2 o (a propria scelta) qualsiasi versione successiva.

&app; è distribuito con la speranza che possa essere utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di MERCANTABILITÀ o di ADATTABILITÀ A UN PARTICOLARE UTILIZZO. Consultare la GNU General Public License per maggiori dettagli.

Dovrebbe essere stata fornita una copia della GNU General Public License con &app;. È anche possibile ottenere una copia della GNU General Public License dalla Free Software Foundation visitando il loro sito web o scrivendo a

     Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA02110-1301USA

### Utilizzo dalla linea di comando

`diffuse [ -h | -? | --help | -v | --version ]`

- Visualizza le informazioni relative a &app;.

`diffuse [ [ `opzione` ]... [ `file` ]... ]...`

- Confronta e unisce file.

#### Opzioni di aiuto

Se viene specificata una opzione di aiuto, questa deve essere l'unico argomento inserito nella linea di comando. &app; uscirà subito dopo aver visualizzato le informazioni.

`-h`, `-?`, `--help`

- Mostra le informazioni di utilizzo.

`-v`, `--version`

- Mostra la versione e il copyright.

#### Opzioni di configurazione

Se viene specificata una opzione di configurazione, questa deve essere il primo argomento indicato nella riga di comando.

`--no-rcfile`

- Non legge alcun file di inizializzazione.

`--rcfile `file``

- Legge i comandi di inizializzazione esclusivamente dal file `file`.

#### Opzioni generali

`-c`, `--commit` `rev`

- Apre delle schede di confronto separate per tutti i file interessati dal commit `rev` dai restanti percorsi indicati tra gli argomenti della linea di comando.

`-D`, `--close-if-same`

- Chiude tutte le schede senza differenze.

`-e`, `--encoding` `codec`

- Usa `codec` per leggere e scrivere i file.

`-L`, `--label` `etichetta`

- Visualizza `etichetta` invece del nome del file.

`-m`, `--modified`

- Apre delle schede di confronto separate per tutti gli elementi modificati dai restanti percorsi indicati tra gli argomenti della linea di comando.

`-r`, `--revision` `rev`

- Include nella scheda di confronto dei file la revisione `rev` del file successivo contenuto negli argomenti della linea di comando.

`-s`, `--separate`

- Apre tutti i restanti file specificati come argomento della linea di comando in schede di confronto separate.

`-t`, `--tab`

- Apre una nuova scheda per ogni altro file indicato come argomento della riga di comando.

`--line `linea``

- Inizia con la `linea` selezionata.

`--null-file`

- Crea un riquadro di confronto vuoto.

#### Opzioni di visualizzazione

Le opzioni di visualizzazione indicate come argomenti della linea di comando hanno la precedenza sui valori salvati delle preferenze.

`-b`, `--ignore-space-change`

- Ignora i cambiamenti del numero di spazi vuoti.

`-B`, `--ignore-blank-lines`

- Ignora i cambiamenti le cui righe sono tutte vuote.

`-E`, `--ignore-end-of-line`

- Ignora le differenze alla fine della riga.

`-i`, `--ignore-case`

- Ignora le differenze tra lettere maiuscole e minuscole nel contenuto del file.

`-w`, `--ignore-all-space`

- Ignora tutti gli spazi vuoti.

## Confrontare i file

Usare le voci del menu File Nuova unione a 2 file, File Nuova unione a 3 file e File Nuova unione a N file per creare ulteriori schede di confronto tra file di testo. I nomi dei file e le revisioni possono essere indicati sia come argomenti della linea di comando di &app; sia nei campi della finestra di apertura file.

&app; visualizza i file uno a fianco all'altro inserendo degli spazi per allineare le righe di testo simili. Le differenze sono evidenziate con diversi colori di sfondo.

### Sommario del confronto

Nel margine destro della finestra è visibile un sommario del confronto dei file. Il sommario mostra dove sono stati inseriti degli spazi per allineare le righe di testo corrispondenti ed evidenzia le differenze usando i colori. Le modifiche manuali sono evidenziate in verde. Un cursore blu identifica la regione che si sta visualizzando. La regione visualizzata può essere cambiata facendo clic in un qualsiasi punto del sommario.

### Selezionare

Le righe di testo possono essere selezionate utilizzando il mouse o la tastiera. Selezionare le righe di testo facendovi clic sopra con il puntatore del mouse. Fare clic e trascinare il puntatore per selezionare più righe. Mantenendo premuto Maiusc quando si fa clic la selezione corrente verrà estesa. Selezionare le righe con la tastiera premendo i tasti Pag_Su, Pag_Giù o le frecce. Tenere premuto Maiusc mentre si usano questi tasti per estendere la selezione. Spostare la selezione in un file adiacente utilizzando i tasti delle frecce sinistra e destra.

### Far corrispondere le righe

Il puntatore del mouse o la tastiera possono essere usati per allineare manualmente le righe di testo con i file adiacenti. Per allineare le righe di testo usando il puntatore del mouse, selezionare una riga di testo con il pulsante sinistro del mouse, fare clic con il tasto destro del mouse su una riga di testo del file adiacente e scegliere Allinea con la selezione. Per allineare le righe di testo con la tastiera, spostare la selezione con i tasti freccia, premere la barra spaziatrice per selezionare la riga corrente di testo, spostare la selezione con i tasti freccia a una riga di testo nel file adiacente e premere di nuovo la barra spaziatrice per indicare la riga di destinazione del testo. Premere il tasto Esc in qualsiasi momento per annullare l'operazione.

Usare la voce di menu Isola per evitare che le righe selezionate vengano fatte corrispondere a una qualsiasi riga dei file adiacenti.

### Modificare

Premere il tasto Invio o fare doppio clic nell'area di testo per avviare la modalità di modifica del testo. Il cursore cambierà e nella barra di stato verrà visualizzato il numero della colonna in cui il cursore è posizionato.

Nella modalità di modifica testo, il testo può essere selezionato con il puntatore del mouse facendo clic e trascinando. La selezione corrente può essere estesa tenendo premuto il tasto Maiusc e muovendo il cursore facendo clic con il puntatore del mouse o premendo uno qualsiasi tra i tasti freccia, home, fine, Pg_Su o Pg_Giù. Le parole possono essere selezionate individualmente con un doppio clic sopra di esse con il puntatore del mouse. L'intera riga può essere selezionata con un triplo clic su di essa con il puntatore del mouse.

Modificare il testo digitando sulla tastiera. Le righe modificate verranno evidenziate in verde. Usare le voci di menu Annulla e Ripeti per annullare e ripetere le operazioni effettuate.

Premere il tasto Esc o fare clic nell'area di testo di un altro file con il pulsante sinistro del mouse per abbandonare la modalità di modifica del testo.

### Unire

Usare i pulsanti delle differenze o le relative voci del menu per spostarsi tra i blocchi di differenze all'interno del file. &app; sposterà la selezione al gruppo di righe più vicino con differenze o modifiche.

Usare i pulsanti di unione o le relative voci di menu per copiare blocchi di testo nelle righe selezionate. Le voci di menu Annulla e Ripeti possono essere utilizzate per annullare e ripetere le operazioni effettuate in precedenza. Tutte le modifiche a un gruppo di righe possono essere annullate utilizzando la voce di menu Annulla modifiche indipendentemente dall'ordine con cui le modifiche sono state effettuate.

## Controllo di versione

&app; è in grado di recuperare le revisioni dei file da diversi sistemi di controllo di versione attraverso la loro interfaccia da linea di comando. Il pacchetto di &app; compilato per Microsoft Windows è in grado di utilizzare sia Cygwin che le versioni native dei sistemi di controllo di versione supportati. Quando si utilizza &app; con Cygwin, assicurarsi che le preferenze di &app; relative a Cygwin descrivano correttamente il proprio sistema. Se la preferenza Aggiorna i percorsi per Cygwin esiste per un sistema di controllo di versione, deve essere abilitata per utilizzare la versione di Cygwin.

I sistemi di controllo di versione sono sensibili al percorso di sistema e ad altre impostazioni delle variabili di sistema. La preferenza Avvia dalla Bash di una shell di login può essere usata per impostare facilmente l'ambiente per i sistemi di controllo di versione Cygwin.

### Visualizzare le modifiche non applicate

L'opzione `-m` farà aprire a &app; tante schede di confronto quanti sono i file con modifiche non applicate così come riportati dal sistema di controllo di versione. Questo è utile per controllare tutti i cambiamenti prima di effettuare il "commit" o di risolvere i conflitti di unione. Se non vengono specificati dei percorsi, verrà utilizzata la cartella di lavoro corrente. Per esempio, visualizzare tutte le proprie modifiche non applicate con il seguente comando:

    $ diffuse -m

La revisione predefinita di un file verrà usata per il confronto se viene specificato un solo file. Per esempio, il seguente comando visualizzerà un'unione a due file tra la revisione predefinita del file `foo.C` e la copia locale dello stesso file:

    $ diffuse foo.C

### Specificare le revisioni

L'opzione`-r` può essere usata per specificare esplicitamente una particolare revisione di un file. Può essere utilizzato un qualsiasi identificatore della revisione riconosciuto dal sistema di controllo di versione. Se viene specificata un'unica revisione, il confronto verrà fatto rispetto al file locale. Per esempio, il seguente comando visualizzerà una unione a 2 file tra la revisione 123 del file `foo.C` e la copia locale dello stesso file:

    $ diffuse -r 123 foo.C

Diverse revisioni dello stesso file possono essere confrontate specificando più opzioni `-r`. Per esempio, il seguente comando visualizzerà una unione a due file tra la revisione 123 del file `foo.C` e la revisione 321 dello stesso file:

    $ diffuse -r 123 -r 321 foo.C

I file locali possono essere combinati con file dal controllo di versione. Per esempio, il seguente comando visualizzerà una unione a 3 file tra la revisione MERGE_HEAD del file `foo.C`, il file locale `foo.C` e la revisione HEAD dello stesso file:

    $ diffuse -r MERGE_HEAD foo.C foo.C -r HEAD foo.C

L'opzione `-c` può essere usata per specificare facilmente una coppia di revisioni con numerazioni successive. Per esempio, questo comando visualizzerà una unione a 2 file tra la revisione 1.2.2 del file `foo.C` e la revisione 1.2.3 dello stesso file:

    $ diffuse -c 1.2.3 foo.C

&app; non limita il numero di riquadri che possono essere usati per confrontare i file. Gli input a una unione Git a più direzioni possono essere visualizzati con un comando di questo tipo:

    $ diffuse -r HEAD^1 -r HEAD^2 -r HEAD^3 -r HEAD^4 -r HEAD^5 foo.C

## Risorse

Le risorse possono essere utilizzate per personalizzare vari parametri dell'aspetto e del comportamento di &app;. È possibile infatti modificare i colori utilizzati nell'interfaccia, personalizzare le scorciatoie da tastiera, aggiungere o sostituire regole per il riconoscimento della sintassi o modificare la mappatura tra estensione del file e regole di riconoscimento della sintassi.

Quando &app; viene avviato, legge i comandi dal file di inizializzazione del sistema `/etc/diffuserc` (`%CARTELLA_DI_INSTALLAZIONE%\diffuserc` su Microsoft Windows) e in seguito il file di inizializzazione personale `~/.config/diffuse/diffuserc` (`%HOME%\.config\diffuse\diffuserc` su Microsoft Windows). Questo comportamento può essere modificato con le opzioni di configurazione `--no-rcfile` e `--rcfile`. Un analizzatore di lessico simile alla Bourne shell è utilizzato per analizzare i comandi di inizializzazione. I commenti e i caratteri speciali possono essere inseriti utilizzando lo stesso stile di "escaping" utilizzato per gli script della Bourne shell.

### Generali

`import `file``

- Elabora i comandi di inizializzazione dal file `file`. Il file di inizializzazione viene elaborato una sola volta.

### Keybinding

`keybinding `contesto` `azione` `combinazione_tasti``

- Collega una combinazione di tasti a `azione` quando è utilizzata in `contesto`. Specificare i modificatori Maiusc e Control precedendo rispettivamente `Maiusc+` e `Ctrl+` a `combinazione_tasti`. I tasti normalmente modificati da Maiusc dovrebbero essere specificati utilizzando il loro valore modificato se `combinazione_tasti` comprende il tasto Maiusc; per esempio `Ctrl+g` e `Maiusc+Ctrl+G`. Rimuovere i collegamenti per `combinazione_tasti` specificando `None` come `azione`.

#### Keybinding delle voci di menu

Usare `menu` come `contesto` per definire i keybinding per le voci dei menu. I seguenti valori sono validi per il campo `azione`:

`open_file`

- Voce di menu File Apri file

  Predefinito: `Ctrl+o`

`open_file_in_new_tab`

- Voce di menu File Apri file in una nuova scheda...

  Predefinito: `Ctrl+t`

`open_modified_files`

- Voce di menu File Apri file modificati...

  Predefinito: `Shift+Ctrl+O`

`open_commit`

- Voce di menu File Apri commit...

  Predefinito: `Shift+Ctrl+T`

`reload_file`

- Voce di menu File Ricarica file

  Predefinito: `Shift+Ctrl+R`

`save_file`

- Voce di menu File Salva file

  Predefinito: `Ctrl+s`

`save_file_as`

- Voce di menu File Salva con nome...

  Predefinito: `Shift+Ctrl+A`

`save_all`

- Voce di menu File Salva tutti

  Predefinito: `Shift+Ctrl+S`

`new_2_way_file_merge`

- Voce di menu File Nuova unione a 2 file

  Predefinito: `Ctrl+2`

`new_3_way_file_merge`

- Voce di menu File Nuova unione a 3 file

  Predefinito: `Ctrl+3`

`new_n_way_file_merge`

- Voce di menu File Nuova unione a N file

  Predefinito: `Ctrl+4`

`close_tab`

- Voce di menu File Chiudi scheda

  Predefinito: `Ctrl+w`

`undo_close_tab`

- Voce di menu File Annulla chiusura scheda

  Predefinito: `Shift+Ctrl+w`

`quit`

- Voce di menu File Esci.

  Predefinito: `Ctrl+q`

`undo`

- Voce di menu Modifica Annulla

  Predefinito: `Ctrl+z`

`redo`

- Voce di menu Modifica Ripeti

  Predefinito: `Shift+Ctrl+Z`

`cut`

- Voce di menu Modifica Taglia

  Predefinito: `Ctrl+x`

`copy`

- Voce di menu Modifica Copia

  Predefinito: `Ctrl+c`

`paste`

- Voce di menu Modifica Incolla

  Predefinito: `Ctrl+v`

`select_all`

- Voce di menu Modifica Seleziona tutto

  Predefinito: `Ctrl+a`

`clear_edits`

- Voce di menu Modifica Annulla modifiche

  Predefinito: `Ctrl+r`

`dismiss_all_edits`

- Voce di menu Modifica Scarta tutte le modifiche

  Predefinito: `Ctrl+d`

`find`

- Voce di menu Modifica Trova...

  Predefinito: `Ctrl+f`

`find_next`

- Voce di menu Modifica Trova successivo

  Predefinito: `Ctrl+g`

`find_previous`

- Voce di menu Modifica Trova precedente

  Predefinito: `Shift+Ctrl+G`

`go_to_line`

- Voce di menu Modifica Vai alla riga...

  Predefinito: `Shift+Ctrl+L`

`preferences`

- Voce di menu Modifica Preferenze

  Predefinito: Nessuno

`no_syntax_highlighting`

- Voce di menu Visualizza Sintassi Nessuna

  Predefinito: Nessuno

`syntax_highlighting_`sintassi``

- Voce di menu Visualizza Sintassi `syntax`

  Predefinito: Nessuno

`realign_all`

- Voce di menu Visualizza Riallinea tutto

  Predefinito: `Ctrl+l`

`isolate`

- Voce di menu Visualizza isola

  Predefinito: `Ctrl+i`

`first_difference`

- Voce di menu Visualizza Prima differenza

  Predefinito: `Shift+Ctrl+Up`

`previous_difference`

- Voce di menu Visualizza Differenza precedente

  Predefinito: `Ctrl+Up`

`next_difference`

- Voce di menu Visualizza Differenza successiva

  Predefinito: `Ctrl+Down`

`last_difference`

- Voce di menu Visualizza Ultima differenza

  Predefinito: `Shift+Ctrl+Down`

`first_tab`

- Voce di menu Visualizza Prima scheda

  Predefinito: `Shift+Ctrl+Page_Up`

`previous_tab`

- Voce di menu Visualizza Scheda precedente

  Predefinito: `Ctrl+Page_Up`

`next_tab`

- Voce di menu Visualizza Scheda successiva

  Predefinito: `Ctrl+Page_Down`

`last_tab`

- Voce di menu Visualizza Ultima scheda

  Predefinito: `Shift+Ctrl+Page_Down`

`shift_pane_right`

- Voce di menu Visualizza Sposta riquadro a destra

  Predefinito: `Shift+Ctrl+parenleft`

`shift_pane_left`

- Voce di menu Visualizza Sposta riquadro a sinistra

  Predefinito: `Shift+Ctrl+parenright`

`convert_to_upper_case`

- Voce di menu Formato Converti in MAIUSCOLO

  Predefinito: `Ctrl+u`

`convert_to_lower_case`

- Voce di menu Formato Converti in minuscolo

  Predefinito: `Shift+Ctrl+U`

`sort_lines_in_ascending_order`

- Voce di menu Formato Disponi le righe in ordine ascendente

  Predefinito: `Ctrl+y`

`sort_lines_in_descending_order`

- Voce di menu Formato Disponi le righe in ordine discendente

  Predefinito: `Shift+Ctrl+Y`

`remove_trailing_white_space`

- Voce di menu Formato Rimuovi gli spazi vuoti alla fine della riga

  Predefinito: `Ctrl+k`

`convert_tabs_to_spaces`

- Voce di menu Formato Converti le tabulazioni in spazi

  Predefinito: `Ctrl+b`

`convert_leading_spaces_to_tabs`

- Voce di menu Formato Converti gli spazi iniziali in tabulazioni

  Predefinito: `Shift+Ctrl+B`

`increase_indenting`

- Voce di menu Formato Aumenta indentazione

  Predefinito: `Shift+Ctrl+greater`

`decrease_indenting`

- Voce di menu Formato Diminuisci indentazione

  Predefinito: `Shift+Ctrl+less`

`convert_to_dos`

- Voce di menu Formato Converti nel formato DOS

  Predefinito: `Shift+Ctrl+E`

`convert_to_mac`

- Voce di menu Formato Converti nel formato MAC

  Predefinito: `Shift+Ctrl+C`

`convert_to_unix`

- Voce di menu Formato Converti nel formato Unix

  Predefinito: `Ctrl+e`

`copy_selection_right`

- Voce di menu Unione Copia selezione a destra

  Predefinito: `Shift+Ctrl+Right`

`copy_selection_left`

- Voce di menu Unione Copia selezione a sinistra

  Predefinito: `Shift+Ctrl+Left`

`copy_left_into_selection`

- Voce di menu Unione Copia sinistra nella selezione

  Predefinito: `Ctrl+Destra`

`copy_right_into_selection`

- Voce di menu Unione Copia destra nella selezione

  Predefinito: `Ctrl+Sinistra`

`merge_from_left_then_right`

- Voce di menu Unione Unisci sinistra poi destra

  Predefinito: `Ctrl+m`

`merge_from_right_then_left`

- Voce di menu Unione Unisci destra poi sinistra

  Predefinito: `Shift+Ctrl+M`

`help_contents`

- Voce di menu Aiuto Sommario

  Predefinito: `F1`

`about`

- Voce di menu Aiuto Informazioni

  Predefinito: Nessuno

#### Keybinding per la modalità di modifica delle righe

Usare `line_mode` come `contesto` per definire i keybinding per la modalità di modifica delle righe. I seguenti valori sono validi per il campo `azione`:

`enter_align_mode`

- Passa alla modalità di modifica dell'allineamento

  Predefinito: `space`

`enter_character_mode`

- Passa alla modalità di modifica del testo

  Predefiniti: `Return`, `KP_Enter`

`first_line`

- Sposta il cursore alla prima riga

  Predefiniti: `Home`, `g`

`extend_first_line`

- Sposta il cursore alla prima riga, estendendo la selezione

  Predefinito: `Shift+Home`

`last_line`

- Sposta il cursore all'ultima riga

  Predefiniti: `End`, `Shift+G`

`extend_last_line`

- Sposta il cursore all'ultima riga, estendendo la selezione

  Predefinito: `Shift+End`

`up`

- Sposta il cursore alla riga superiore

  Predefiniti: `Up`, `k`

`extend_up`

- Sposta il cursore alla riga superiore, estendendo la selezione

  Predefiniti: `Shift+Up`, `Shift+K`

`down`

- Sposta il cursore alla riga inferiore

  Predefiniti: `Down`, `j`

`extend_down`

- Sposta il cursore alla riga inferiore, estendendo la selezione

  Predefiniti: `Shift+Down`, `Shift+J`

`left`

- Sposta il cursore sinistra di un file

  Predefiniti: `Left`, `h`

`extend_left`

- Sposta il cursore a sinistra di un file, estendendo la selezione

  Predefinito: `Shift+Left`

`right`

- Sposta il cursore a destra di un file

  Predefiniti: `Right`, `l`

`extend_right`

- Sposta il cursore a destra di un file, estendendo la selezione

  Predefinito: `Shift+Right`

`page_up`

- Sposta il cursore alla pagina superiore

  Predefiniti: `Page_Up`, `Ctrl+u`

`extend_page_up`

- Sposta il cursore alla pagina superiore, estendendo la selezione

  Predefiniti: `Shift+Page_Up`, `Shift+Ctrl+u`

`page_down`

- Sposta il cursore alla pagina inferiore

  Predefiniti: `Page_Down`, `Ctrl+d`

`extend_page_down`

- Sposta il cursore alla pagina inferiore, estendendo la selezione

  Predefiniti: `Shift+Page_Down`, `Shift+Ctrl+d`

`delete_text`

- Cancella il testo selezionato

  Predefiniti: `BackSpace`, `Delete`, `x`

`first_difference`

- Seleziona la prima differenza

  Predefiniti: `Ctrl+Home`, `Shift+P`

`previous_difference`

- Seleziona la differenza precedente

  Predefinito: `p`

`next_difference`

- Seleziona la differenza successiva

  Predefinito: `n`

`last_difference`

- Seleziona l'ultima differenza

  Predefiniti: `Ctrl+End`, `Shift+N`

`clear_edits`

- Annulla tutte le modifiche alle righe selezionate

  Predefinito: `r`

`copy_selection_left`

- Copia le righe selezionate nel file di sinistra

  Predefinito: Nessuno

`copy_selection_right`

- Copia le righe selezionate nel file di destra

  Predefinito: Nessuno

`copy_left_into_selection`

- Copia le righe dal file a sinistra nella selezione

  Predefinito: `Shift+L`

`copy_right_into_selection`

- Copia le righe dal file a destra nella selezione

  Predefinito: `Shift+H`

`merge_from_left_then_right`

- Unisce le righe dal file a sinistra poi da quello a destra

  Predefinito: `m`

`merge_from_right_then_left`

- Unisce le righe dal file a destra poi da quello a sinistra

  Predefinito: `Shift+M`

`isolate`

- Isola le righe selezionate

  Predefinito: `i`

#### Keybinding per la modalità di modifica dell'allineamento

Usare `align_mode` come `contesto` per definire i keybinding per la modalità di modifica dell'allineamento. I seguenti valori sono validi per il campo `azione`:

`enter_line_mode`

- Passa alla modalità di modifica riga

  Predefinito: `Escape`

`enter_character_mode`

- Passa alla modalità di modifica del testo

  Predefiniti: `Return`, `KP_Enter`

`first_line`

- Sposta il cursore alla prima riga

  Predefinito: `g`

`last_line`

- Sposta il cursore all'ultima riga

  Predefinito: `Shift+G`

`up`

- Sposta il cursore alla riga superiore

  Predefiniti: `Up`, `k`

`down`

- Sposta il cursore alla riga inferiore

  Predefiniti: `Down`, `j`

`left`

- Sposta il cursore sinistra di un file

  Predefiniti: `Left`, `h`

`right`

- Sposta il cursore a destra di un file

  Predefiniti: `Right`, `l`

`page_up`

- Sposta il cursore alla pagina superiore

  Predefiniti: `Page_Up`, `Ctrl+u`

`page_down`

- Sposta il cursore alla pagina inferiore

  Predefiniti: `Page_Down`, `Ctrl+d`

`align`

- Allinea le righe selezionate alla posizione del cursore

  Predefinito: `space`

#### Keybinding della modalità di modifica testo

Usare `character_mode` come `contesto` per definire i keybinding per la modalità di modifica testo. I seguenti valori sono validi per il campo `azione`:

`enter_line_mode`

- Passa alla modalità di modifica riga

  Predefinito: `Escape`

### Stringhe

`stringa `nome` `valore``

- Dichiara una stringa chiamata `nome` con valore `valore`.

#### Risorse stringa utilizzate

&app; utilizza le seguenti stringhe come risorse:

`difference_colours`

- un elenco di risorse colore utilizzate per evidenziare le differenze

  Predefinito: `difference_1 difference_2 difference_3`

### Colori

`[ colour | color ] `nome` `rosso` `verde` `blu``

- Dichiara una risorsa colore chiamata `nome`. Le singole componenti del colore devono essere espresse come valori compresi tra 0 e 1.

#### Risorse colori utilizzati

&app; utilizza le seguenti risorse colore:

`alignment`

- Colore utilizzato per indicare una riga selezionata per l'allineamento manuale.

  Predefinito: `1 1 0`

`character_selection`

- Colore usato per evidenziare i caratteri selezionati.

  Predefinito: `0.7 0.7 1`

`cursor`

- Colore utilizzato per il cursore.

  Predefinito: `0 0 0`

`difference_1`

- Colore usato per evidenziare le differenze nella prima coppia di file.

  Predefinito: `1 0.625 0.625`

`difference_2`

- Colore usato per evidenziare le differenze nella seconda coppia di file.

  Predefinito: `0.85 0.625 0.775`

`difference_3`

- Colore usato per evidenziare le differenze nella terza coppia di file.

  Predefinito: `0.85 0.775 0.625`

`edited`

- Colore usato per evidenziare le righe modificate.

  Predefinito: `0.5 1 0.5`

`hatch`

- Colore usato per evidenziare delle discrepanze nell'allineamento.

  Predefinito: `0.8 0.8 0.8`

`line_number`

- Colore usato per i numeri di riga.

  Predefinito: `0 0 0`

`line_number_background`

- Colore di sfondo per l'area del numero di riga.

  Predefinito: `0.75 0.75 0.75`

`line_selection`

- Colore usato per evidenziare le linee selezionate.

  Predefinito: `0.7 0.7 1`

`map_background`

- Colore di sfondo per l'area di mappatura.

  Predefinito: `0.6 0.6 0.6`

`margin`

- Colore usato per indicare il margine destro.

  Predefinito: `0.8 0.8 0.8`

`preedit`

- Colore del testo prima delle modifiche.

  Predefinito: `0 0 0`

`text`

- Colore del testo regolare.

  Predefinito: `0 0 0`

`text_background`

- Colore di sfondo per l'area di testo.

  Predefinito: `1 1 1`

### Valori a virgola mobile

`float `nome` `valore``

- Dichiara una risorsa a virgola mobile chiamata `nome` con valore `valore`.

#### Risorse a virgola mobile utilizzate

&app; utilizza le seguenti risorse a virgola mobile:

`alignment_opacity`

- Opacità utilizzata durante la composizione del colore per l'allineamento manuale

  Predefinito: `1`

`character_difference_opacity`

- Opacità utilizzata durante la composizione del colore per le differenze di testo

  Predefinito: `0.4`

`character_selection_opacity`

- Opacità utilizzata durante la composizione del colore per il testo selezionato

  Predefinito: `0.4`

`edited_opacity`

- Opacità utilizzata durante la composizione del colore per le righe modificate

  Predefinito: `0.4`

`line_difference_opacity`

- Opacità utilizzata durante la composizione del colore per le differenze di riga

  Predefinito: `0.3`

`line_selection_opacity`

- Opacità utilizzata durante la composizione del colore per la riga selezionata

  Predefinito: `0.4`

### Riconoscimento della sintassi

`syntax `nome` `stato_iniziale` `default_tag``

- Dichiara un nuovo stile di sintassi chiamato `nome`. Il riconoscimento della sintassi utilizza una semplice macchina di stato che cambia di stato nel momento in cui alcuni schemi risultano corrispondenti. Lo stato iniziale per la macchina sarà `stato_iniziale`. Tutti i caratteri che non corrispondono ad alcuno schema verranno marcati come `default_tag` per il riconoscimento. Lo stile di sintassi chiamato `nome` può essere rimosso omettendo `stato_iniziale` e `default_tag`.

`syntax_files `nome` `schema``

- Specifica che i file con un nome corrispondente a `schema` devono essere evidenziati utilizzando lo stile di sintassi chiamato `nome`. Gli schemi usati per far corrispondere i file utilizzati con lo stile di sintassi chiamato `nome` possono essere rimossi omettendo `schema`.

`syntax_magic `nome` `schema` ignorecase`

- Specifica che i file con una prima riga corrispondente a `schema` devono essere evidenziati utilizzando lo stile di sintassi chiamato `nome`. Gli schemi usati per far corrispondere i file utilizzati con lo stile di sintassi chiamato `nome` possono essere rimossi omettendo `schema`.

`syntax_pattern `nome` `stato_iniziale` `stato_finale` `tag` `schema` ignorecase`

- Aggiunge uno schema allo stile di sintassi dichiarato precedentemente.Gli schemi sono analizzati uno alla volta nell'ordine dichiarato fino a quando non viene trovata una corrispondenza. Uno schema sarà utilizzato per far corrispondere dei caratteri solamente se la macchina di stato si trova nello stato `stato_iniziale`. La macchina di stato si sposterà sullo `stato_finale` se lo schema definito da `schema` verrà corrisposto. La corrispondenza dello schema ignorerà le differenze tra maiuscole e minuscole se è specificata l'opzione `ignorecase`. Tutti i caratteri per cui è stata trovata una corrispondenza verranno identificati con `tag` per evidenziarli.

## File

&app; utilizza i seguenti file:

`/etc/diffuserc`

- Inizializzazioni a livello di tutto il sistema (`%CARTELLA_DI_INSTALLAZIONE%\diffuserc` su Microsoft Windows)

`/usr/share/diffuse/syntax/*.syntax`

- File di sintassi per i vari linguaggi (`%CARTELLA_DI_INSTALLAZIONE%\syntax\*.syntax` su Microsoft Windows)

`~/.config/diffuse/diffuserc`

- Le proprie inizializzazioni (`%HOME%\.config\diffuse\diffuserc` su Microsoft Windows)

`~/.config/diffuse/prefs`

- Le proprie preferenze salvate (`%HOME%\.config\diffuse\prefs` su Microsoft Windows)

`~/.local/share/diffuse/state`

- dati persistenti tra le sessioni (`%HOME%\.local\share\diffuse\state` su Microsoft Windows)