doc/it_IT.ISO8859-15/books/unix-introduction/editors/chapter.xml
2013-01-21 17:39:52 +00:00

1280 lines
40 KiB
XML

<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
-->
<chapter id="editors">
<title>Editor</title>
<para>Esistono numerose utility per la manipolazione del testo in Unix, come
è stato notato attraverso questo documento (esempio
&man.ed.1;, &man.ex.1;, &man.sed.1;, &man.awk.1;, la famiglia
<application>grep</application> e la famiglia
<application>roff</application>). Tra gli editor, l'editor visuale (o a
schermo pieno) standard su Unix è <application>vi</application>.
Questa applicazione comprende un super-set, per così dire, di
caratteristiche di &man.ed.1; e di &man.ex.1; (gli editor a linea di
Unix).</para>
<para>&man.vi.1; è un editor modale. Questo significa che ha
modalità specifiche che permettono l'inserimento del testo, la
cancellazione del testo e l'inserimento dei comandi. Si può lasciare
la modalità di inserimento premendo il tasto <keycap>escape</keycap>.
In questo modo ci si porta nella modalità comando. L'editor
di linea &man.ex.1; è incorporato in &man.vi.1;. Si può
passare dalla modalità a schermo pieno a quella a linea di comando (e
viceversa) quando si desidera. In modalità <emphasis>vi</emphasis>
premere <keycap>Q</keycap> per andare in modalità
<emphasis>ex</emphasis>. In modaltà <emphasis>ex</emphasis>, al
prompt : digitare <command>vi</command> per ritornare in modalità
<emphasis>vi</emphasis>. Inoltre è disponibile una modalità
di &man.vi.1; in sola lettura, che può essere invocata con
&man.view.1;.</para>
<para>Un altro editor comune nei sistemi Unix, specialmente nei college e
negli ambienti universitari, è <application>emacs</application> (che
sta per <quote>editing macros</quote>). Mentre &man.vi.1; è in
generale compreso nel sistema operativo Unix, &man.emacs.1; usualmente non
lo è. <application>Emacs</application> viene distribuito dalla Free
Software Foundation ed è discutibilmente il più potente editor
disponibile per Unix. <application>Emacs</application> è un software
di sistema molto grande ed è un grossa risorsa di sistema per un
utente di computer.</para>
<para>La Free Software Foundation e il progetto GNU (del quale
<application>emacs</application> fa parte) sono stati fondati da Richard
Stallman e dai suoi soci, i quali credono (come specificato nel manifesto
GNU) che condividere il software sia <quote>l'atto fondamentale di amicizia
tra programmatori</quote>. La loro General Public License garantisce il
diritto d'uso, di modifica e di distribuzione di
<application>emacs</application> (incluso il suo codice sorgente) ed
è stata progettata specificatamente per impedire a qualcuno di
prendersi un profitto finanziario da <application>emacs</application> o da
altri software conseguiti attraverso la Free Software Foundation. Molti dei
loro software, incluso <application>emacs</application>, sono disponibili
via <ulink url="ftp://ftp.gnu.org/pub/gnu/"><hostid
role="fqdn">ftp://ftp.gnu.org/pub/gnu/</hostid></ulink> e
<ulink url="http://www.gnu.org/"><hostid
role="fqdn">http://www.gnu.org/</hostid></ulink>.</para>
<para>Sia &man.vi.1; che &man.emacs.1; permettono di creare file di
inizializzazione che possono contenere macro per controllare i settaggi e le
funzioni degli editor.</para>
<sect1 id="editors-vi">
<title>Configurare la propria sessione vi</title>
<para>Per configurare l'ambiente di &man.vi.1; certe opzioni possono essere
settate con il comando di linea dell'editor <command>:set</command>
durante una sessione di editing. In alternativa, le opzioni usate di
frequente possono essere automaticamente settate quando viene invocato
&man.vi.1;, attraverso il file <filename>.exrc</filename>. Inoltre,
questo file può contenere macro per mappare battute di tasti in
funzioni usando la funzione <command>map</command>. All'interno di
&man.vi.1; queste macro possono essere definite con il comando
<command>:map</command>. I caratteri di controllo possono essere inseriti
digitando prima <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>V</keycap>
</keycombo>, quindi il carattere di controllo desiderato. Alcune opzioni
disponibili in &man.vi.1; sono mostrate qui sotto. Alcuni sistemi Unix
non accettano certe di queste opzioni.</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="2in"/>
<tbody>
<row>
<entry><command>:set all</command></entry>
<entry>visualizza tutti i settaggi delle opzioni</entry>
</row>
<row>
<entry><command>:set ignorecase</command></entry>
<entry>ignora il maiuscolo e minuscolo di un carattere in una
ricerca</entry>
</row>
<row>
<entry><command>:set list</command></entry>
<entry>visualizza tab e return</entry>
</row>
<row>
<entry><command>:set nolist</command></entry>
<entry>mette off l'opzione <option>list</option></entry>
</row>
<row>
<entry><command>:set number</command></entry>
<entry>visualizza i numeri di linea</entry>
</row>
<row>
<entry><command>:set nonumber</command></entry>
<entry>disattiva i numeri di linea</entry>
</row>
<row>
<entry><command>:set showmode</command></entry>
<entry>visualizza l'indicazione che la modalità di
inserimento è on</entry>
</row>
<row>
<entry><command>:set noshowmode</command></entry>
<entry>mette off l'opzione <option>showmode</option></entry>
</row>
<row>
<entry><command>:set
wrapmargin=<replaceable>n</replaceable></command></entry>
<entry>mette on la modalità word-wrap a
<replaceable>n</replaceable> spazi dal margine destro</entry>
</row>
<row>
<entry><command>:set wrapmargin=0</command></entry>
<entry>mette off l'opzione <option>wrapmargin</option></entry>
</row>
<row>
<entry><command>:set warn</command></entry>
<entry>visualizza l'avvertimento <quote>Ultima modifica non
registrata</quote></entry>
</row>
<row>
<entry><command>:set nowarn</command></entry>
<entry>mette off l'avvertimento di scrittura
<option>warn</option></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Segue un esempio di file <filename>.exrc</filename>:</para>
<programlisting>set wrapmargin=10
set number
set list
set warn
set ignorecase
map K {!}fmt -80 # riformatta questo paragrafo, {!}, usando fmt a
# 80 caratteri per linea
map ^Z :!spell # invoca spell, :!, per verificare lo splelling di
# una parola (ritorna a vi con Ctrl+D)</programlisting>
</sect1>
<sect1 id="editors-emacs">
<title>Configurare la propria sessione emacs</title>
<para>Configurare l'ambiente di &man.emacs.1; equivale a creare chiamate a
funzioni LISP. &man.emacs.1; è infinitamente personalizzabile
tramite variabili <emphasis>emacs</emphasis>, funzioni built-in e
attraverso la programmazione Emacs LISP. I settaggi possono essere
specificati dal minibuffer (o da linea di comando) durante una sessione
<emphasis>emacs</emphasis>. Alternativamente, i settaggi usati di
frequente possono essere attivati automaticamente quando viene invocato
&man.emacs.1;, usando il file <filename>.emacs</filename>. Benchè
una discussione del Emacs LISP vada oltre lo scopo di questo documento,
seguono alcuni esempi di configurazioni per &man.emacs.1;.</para>
<para>Per settare o verificare variabili <emphasis>emacs</emphasis> o per
usare le sue funzioni built-in, si usa il tasto <keycap>escape</keycap>
(<emphasis>Meta</emphasis> è come &man.emacs.1; si riferisce a
questo) seguito dalla lettera <keycap>x</keycap>, quindi la variabile o
la funzione e i suoi argomenti.</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="3in"/>
<tbody>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap>
what-line</command></entry>
<entry>quale linea è sul cursore?</entry>
</row>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap>
auto-fill-mode</command></entry>
<entry>mette on word-wrap</entry>
</row>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap>
auto-fill-mode</command></entry>
<entry>mette off word-wrap</entry>
</row>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap>
set-variable <keycap>&lt;return&gt;</keycap>
fill-column <keycap>&lt;return&gt;</keycap> 45</command></entry>
<entry>setta la lunghezza di linea a 45 caratteri</entry>
</row>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap>
set-variable <keycap>&lt;return&gt;</keycap>
auto-save-interval <keycap>&lt;return&gt;</keycap>
300</command></entry>
<entry>salva automaticamente il file ogni 300 battute di
tasti</entry>
</row>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap>
goto-line <keycap>&lt;return&gt;</keycap>
16</command></entry>
<entry>muove il cursore alla linea 16</entry>
</row>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap>
help-for-help</command></entry>
<entry>invoca l'help di emacs quando <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>h</keycap>
</keycombo> è stato mappato al tasto
<keycap>backspace</keycap></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Segue un esempio del file <filename>.emacs</filename>:</para>
<programlisting>(message "Loading ~/.emacs...")
; I commenti iniziano con un punto e virgola e continuano fino alla fine della linea.
(setq text-mode-hook 'turn-on-auto-fill) ;mette on word-wrap
(setq fill-column 45) ;lunghezza di linea pari a 45 caratteri
(setq auto-save-interval 300) ;salva il file ogni 300 battute di tasti
; Costruisce (o mappa) la funzione di rubout (Ctrl+h) nel tasto backspace
(global-set-key "\C-h" 'backward-delete-char-untabify)
; Costruisce la funzione help emacs per la sequenza di battitura "Ctrl+x ?"
(global-set-key "\C-x?" 'help-for-help)
; Per saltare alla linea 16, digitare M, #&lt;return&gt;16
(global-set-key "\M-#" 'goto-line)
; Per sapere su che linea si è, digitare M, n
(global-set-key "\M-n" 'what-line)
(message "~/.emacs loaded.")
(message "")</programlisting>
</sect1>
<sect1 id="editors-vi-guide">
<title>Veloce guida per vi</title>
<para>Tutti i comandi in &man.vi.1; sono preceduti dalla pressione del tasto
<keycap>escape</keycap>. Ogni volta che si deve intraprendere un nuovo
comando si deve utilizzare il tasto di <keycap>escape</keycap>.
Diversamente da dove indicato, &man.vi.1; è case sensitive
(sensibile alla differenza minuscolo e maiuscolo).</para>
<para><emphasis>Comandi movimento cursore:</emphasis></para>
<para>(<replaceable>n</replaceable>) indica un numero ed è
opzionale</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>h</keycap></command></entry>
<entry>(<replaceable>n</replaceable>) spazi a sinistra</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>j</keycap></command></entry>
<entry>(<replaceable>n</replaceable>) spazi giù</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>k</keycap></command></entry>
<entry>(<replaceable>n</replaceable>) spazi su</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>l</keycap></command></entry>
<entry>(<replaceable>n</replaceable>) spazi a destra</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>(Generalmente funzionano anche i tasti freccia)</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>F</keycap>
</keycombo></command></entry>
<entry>avanti di una schermata</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>B</keycap>
</keycombo></command></entry>
<entry>indietro di una schermata</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>D</keycap>
</keycombo></command></entry>
<entry>giù di mezza schermata</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>U</keycap>
</keycombo></command></entry>
<entry>su di mezza schermata</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>(<keycap>Ctrl</keycap> indica il tasto <keycap>control</keycap>; il
case sensitive non è importante)</para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command><keycap>H</keycap></command></entry>
<entry>all'inizio della linea superiore della schermata</entry>
</row>
<row>
<entry><command><keycap>M</keycap></command></entry>
<entry>all'inizio della linea mediana della schermata</entry>
</row>
<row>
<entry><command><keycap>L</keycap></command></entry>
<entry>all'inizio dell'ultima linea della schermata</entry>
</row>
<row>
<entry><command><keycap>G</keycap></command></entry>
<entry>all'inizio dell'ultima linea del file</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>G</keycap></command></entry>
<entry>all'inizio della linea (<replaceable>n</replaceable>)</entry>
</row>
<row>
<entry><command><keycap>0</keycap></command></entry>
<entry>(zero) all'inizio della linea</entry>
</row>
<row>
<entry><command><keycap>$</keycap></command></entry>
<entry>alla fine della linea</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>w</keycap></command></entry>
<entry>avanti (<replaceable>n</replaceable>) parole</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>b</keycap></command></entry>
<entry>indietro (<replaceable>n</replaceable>) parole</entry>
</row>
<row>
<entry><command><keycap>e</keycap></command></entry>
<entry>fine della parola</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para><emphasis>Inserimento testo:</emphasis></para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command><keycap>i</keycap></command></entry>
<entry>inserimento testo prima del cursore</entry>
</row>
<row>
<entry><command><keycap>a</keycap></command></entry>
<entry>aggiunta testo dopo il cursore (non sovrascrive altro
testo)</entry>
</row>
<row>
<entry><command><keycap>I</keycap></command></entry>
<entry>inserimento testo all'inizio della linea</entry>
</row>
<row>
<entry><command><keycap>A</keycap></command></entry>
<entry>aggiunta testo alla fine della linea</entry>
</row>
<row>
<entry><command><keycap>r</keycap></command></entry>
<entry>sostituisce il carattere posto sotto il cursore con il
prossimo carattere digitato</entry>
</row>
<row>
<entry><command><keycap>R</keycap></command></entry>
<entry>sovrascrive i caratteri fino alla fine della linea (o fino a
quando il tasto <keycap>escape</keycap> viene digitato per
cambiare comando)</entry>
</row>
<row>
<entry><command><keycap>o</keycap></command></entry>
<entry>(alpha o) inserisce una nuova linea dopo la linea corrente
per inserire del testo</entry>
</row>
<row>
<entry><command><keycap>O</keycap></command></entry>
<entry>(alpha O) inserisce una nuova linea prima della linea
corrente per inserire del testo</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para><emphasis>Cancellazione testo:</emphasis></para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command><keycap>dd</keycap></command></entry>
<entry>cancella la linea corrente</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>dd</keycap></command></entry>
<entry>cancella (<replaceable>n</replaceable>) linee</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>dw</keycap></command></entry>
<entry>cancella (<replaceable>n</replaceable>) parole</entry>
</row>
<row>
<entry><command><keycap>D</keycap></command></entry>
<entry>cancella dal cursore fino alla fine della linea</entry>
</row>
<row>
<entry><command><keycap>x</keycap></command></entry>
<entry>cancella il carattere corrente</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>x</keycap></command></entry>
<entry>cancella (<replaceable>n</replaceable>) caratteri</entry>
</row>
<row>
<entry><command><keycap>X</keycap></command></entry>
<entry>cancella il carattere precedente</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para><emphasis>Comandi di modifica:</emphasis></para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>cc</keycap></command></entry>
<entry>modifica (<replaceable>n</replaceable>) caratteri sulla linea
fino alla fine della linea (o fino a quando viene digitato il
tasto <keycap>escape</keycap>)</entry>
</row>
<row>
<entry><command><keycap>cw</keycap></command></entry>
<entry>modifica i caratteri di una parola fino alla fine della
parola (o fino a quando viene digitato il tasto
<keycap>escape</keycap>)</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>cw</keycap></command></entry>
<entry>modifica i caratteri delle prossime
(<replaceable>n</replaceable>) parole</entry>
</row>
<row>
<entry><command><keycap>c$</keycap></command></entry>
<entry>modifica il testo alla fine della linea</entry>
</row>
<row>
<entry><command><keycap>ct</keycap>(<replaceable>x</replaceable>)</command></entry>
<entry>modifica il testo alla lettera
(<replaceable>x</replaceable>)</entry>
</row>
<row>
<entry><command><keycap>C</keycap></command></entry>
<entry>modifica il testo rimanente sulla linea corrente (fino a
quando viene digitato il tasto <keycap>escape</keycap>)</entry>
</row>
<row>
<entry><command><keycap>~</keycap></command></entry>
<entry>modifica il minuscolo/maiuscolo del carattere
corrente</entry>
</row>
<row>
<entry><command><keycap>J</keycap></command></entry>
<entry>unisce la linea corrente a quella successiva</entry>
</row>
<row>
<entry><command><keycap>u</keycap></command></entry>
<entry>annulla l'ultimo comando realizzato sulla linea
corrente</entry>
</row>
<row>
<entry><command><keycap>.</keycap></command></entry>
<entry>ripete l'ultima modifica</entry>
</row>
<row>
<entry><command><keycap>s</keycap></command></entry>
<entry>sostituisce il carattere corrente con il testo
digitato</entry>
</row>
<row>
<entry><command><keycap>S</keycap></command></entry>
<entry>sostituisce la linea corrente con il testo digitato</entry>
</row>
<row>
<entry><command>:s</command></entry>
<entry>sostituisce vecchie parole con nuove parole
<command>:&lt;linee considerate&gt;
s/vecchio/nuovo/g</command></entry>
</row>
<row>
<entry><command><keycap>&amp;</keycap></command></entry>
<entry>ripete l'ultimo comando di sostituzione
(<command>:s</command>)</entry>
</row>
<row>
<entry><command>(<replaceable>n</replaceable>)<keycap>yy</keycap></command></entry>
<entry><quote>strappa</quote> (<replaceable>n</replaceable>) linee
dal buffer</entry>
</row>
<row>
<entry><command><keycap>y</keycap>(<replaceable>n</replaceable>)<keycap>w</keycap></command></entry>
<entry><quote>strappa</quote> (<replaceable>n</replaceable>) parole
dal buffer</entry>
</row>
<row>
<entry><command><keycap>p</keycap></command></entry>
<entry>inserisce il testo eliminato o <quote>strappato</quote> dopo
il cursore</entry>
</row>
<row>
<entry><command><keycap>P</keycap></command></entry>
<entry>inserisce il testo eliminato o <quote>strappato</quote> prima
del cursore</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para><emphasis>Manipolazione file:</emphasis></para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command>:w
(<replaceable>file</replaceable>)</command></entry>
<entry>scrive i cambiamenti nel file specificato (file corrente di
default)</entry>
</row>
<row>
<entry><command>:wq</command></entry>
<entry>scrive i cambiamenti nel file corrente e conclude la sessione
di editing</entry>
</row>
<row>
<entry><command>:w!
(<replaceable>file</replaceable>)</command></entry>
<entry>sovrascrive il file (file corrente di default)</entry>
</row>
<row>
<entry><command>:q</command></entry>
<entry>esce dalla sessione di editing se non sono stati creati
cambiamenti</entry>
</row>
<row>
<entry><command>:q!</command></entry>
<entry>esce dalla sessione di editing e scarta eventuali
cambiamenti non salvati</entry>
</row>
<row>
<entry><command>:n</command></entry>
<entry>edita il prossimo file nella lista dell'argomento</entry>
</row>
<row>
<entry><command>:f
(<replaceable>nome</replaceable>)</command></entry>
<entry>modifica il nome del file corrente in quello
specificato</entry>
</row>
<row>
<entry><command>:r
(<replaceable>file</replaceable>)</command></entry>
<entry>legge il contenuto del file specificato all'interno del
corrente editing e alla corrente posizione del cursore
(inserisce un file)</entry>
</row>
<row>
<entry><command>:!(<replaceable>comando</replaceable>)</command></entry>
<entry>escape di shell</entry>
</row>
<row>
<entry><command>:r!(<replaceable>comando</replaceable>)</command></entry>
<entry>inserisce il risultato del comando di shell specificato nella
posizione corrente</entry>
</row>
<row>
<entry><keycap>ZZ</keycap></entry>
<entry>scrive i cambiamenti nel file corrente ed esce</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1>
<sect1 id="editors-emacs-guide">
<title>Veloce guida per emacs</title>
<para>I comandi di &man.emacs.1; sono realizzati sia tramite la
simultanea pressione del tasto <keycap>control</keycap> (indicato da
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap></keycap>
</keycombo>), sia attraverso il primo colpo del tasto di
<keycap>escape</keycap> (indicato da <keycap>M</keycap>,).</para>
<para><emphasis>Comandi essenziali</emphasis></para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>h</keycap>
</keycombo></command></entry>
<entry>help</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycap>u</keycap></command></entry>
<entry>undo (annulla operazione precedente)</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>g</keycap>
</keycombo></command></entry>
<entry>esce dalla operazione o comando corrente</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>s</keycap>
</keycombo></command></entry>
<entry>salva il file</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>c</keycap>
</keycombo></command></entry>
<entry>chiude &man.emacs.1;</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para><emphasis>Movimenti cursore</emphasis></para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>f</keycap>
</keycombo></command></entry>
<entry>avanti di un carattere</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>b</keycap>
</keycombo></command></entry>
<entry>indietro di un carattere</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>p</keycap>
</keycombo></command></entry>
<entry>linea precedente</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>n</keycap>
</keycombo></command></entry>
<entry>linea successiva</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>a</keycap>
</keycombo></command></entry>
<entry>inizio linea</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>e</keycap>
</keycombo></command></entry>
<entry>fine linea</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>l</keycap>
</keycombo></command></entry>
<entry>al centro della corrente linea sullo schermo</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>v</keycap>
</keycombo></command></entry>
<entry>sfoglia avanti</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>v</keycap></command></entry>
<entry>sfoglia indietro</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>f</keycap></command></entry>
<entry>avanti di una parola</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>b</keycap></command></entry>
<entry>indietro di una parola</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>a</keycap></command></entry>
<entry>inizio periodo</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>e</keycap></command></entry>
<entry>fine periodo</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>{</keycap></command></entry>
<entry>inizio paragrafo</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>}</keycap></command></entry>
<entry>fine paragrafo</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>&lt;</keycap></command></entry>
<entry>inizio buffer</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>&gt;</keycap></command></entry>
<entry>fine buffer</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para><emphasis>Altre funzioni importanti</emphasis></para>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command><keycap>M</keycap>,
(<replaceable>n</replaceable>)</command></entry>
<entry>ripete il prossimo comando (<replaceable>n</replaceable>)
volte</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>d</keycap>
</keycombo></command></entry>
<entry>cancella un carattere</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>d</keycap></command></entry>
<entry>cancella una parola</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>k</keycap>
</keycombo></command></entry>
<entry>elimina linea</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>k</keycap></command></entry>
<entry>elimina periodo</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>s</keycap>
</keycombo></command></entry>
<entry>ricerca in avanti</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>r</keycap>
</keycombo></command></entry>
<entry>ricerca al rovescio</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>%</keycap></command></entry>
<entry>sostituzione di query</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>c</keycap></command></entry>
<entry>capitalizza parola</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>u</keycap></command></entry>
<entry>parola in lettere maiuscole</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>l</keycap></command></entry>
<entry>parola in lettere minuscole</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>t</keycap>
</keycombo></command></entry>
<entry>commuta caratteri</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>t</keycap></command></entry>
<entry>commuta parole</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>@</keycap>
</keycombo></command></entry>
<entry>marca l'inizio di una regione</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>w</keycap>
</keycombo></command></entry>
<entry>taglia/cancella tutto dalla marcatura al punto</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>y</keycap>
</keycombo></command></entry>
<entry>incolla il testo eliminato o <quote>strappato</quote>
all'interno della locazione corrente</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>q</keycap></command></entry>
<entry>riformatta il paragrafo</entry>
</row>
<row>
<entry><command><keycap>M</keycap>,
<keycap>g</keycap></command></entry>
<entry>riformatta ogni paragrafo nella regione</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="4.5in"/>
<tbody>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap>
auto-fill-mode</command></entry>
<entry>mette on word wrap</entry>
</row>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap> set-variable
<keycap>&lt;return&gt;</keycap> fill-column
<keycap>&lt;return&gt;</keycap> 45</command></entry>
<entry>setta la lunghezza di linea a 45 caratteri</entry>
</row>
<row>
<entry><command><keycap>M</keycap>, <keycap>x</keycap> goto-line
<keycap>&lt;return&gt;</keycap> 16</command></entry>
<entry>muove il cursore alla linea 16</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1.5in"/>
<tbody>
<row>
<entry><command><keycap>M</keycap>,
<keycap>w</keycap></command></entry>
<entry>copia la regione marcata</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>f</keycap>
</keycombo></command></entry>
<entry>cerca un file e lo legge</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>v</keycap>
</keycombo></command></entry>
<entry>cerca e legge un file alternativo</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycap>i</keycap></command></entry>
<entry>inserisce un file alla posizione corrente</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>s</keycap>
</keycombo></command></entry>
<entry>salva il file</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>w</keycap>
</keycombo></command></entry>
<entry>scrive il buffer in un file differente</entry>
</row>
<row>
<entry><command><keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>x</keycap>
</keycombo>, <keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>c</keycap>
</keycombo></command></entry>
<entry>esce da &man.emacs.1; e chiede di salvare</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1>
</chapter>