[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ successivo ]

La guida Debian
Capitolo 11 - Gli Editor


11.1 Editor più popolari

Linux molte scelte fra gli editor di testo per console. Fra questi elenchiamo:

Usate update-alternatives --config editor per cambiare l'editor predefinito. In aggiunta, alcuni programmi usano variabili d'ambiente EDITOR o VISUAL per decidere quale usare. Vedere L'editor in MC, Sezione 4.2.5.

Degni di nota anche alcuni editor basati su X:

Questi comandi xclient accettano opzioni standard, tipo -fn a24, cosa che rende la vita facile per gente più vecchia come me :) Vedere X client, Sezione 9.4.4.


11.2 Editor di salvataggio

Esistono alcuni editor che risiedono in /bin. Uno di questi dovrebbe essere installato, per facilitare la modifica dei file quando /usr non è accessibile.


11.3 Emacs e Vim


11.3.1 Tracce per Vim

Leggete il documento "VIM - file di aiuto principale" premendo <F1> mentre usate il programma.

     <F1>          Aiuto
     <esc>         Ritorno al modo normale
     V              Modo Visuale
     i              Modo Inserimento
     :              Comandi da console
     :set tw=72     Imposta larghezza testo a 72
     <F11>         Modo copia testo
     :r! date -R    Inserisce la data come da RFC-822
     qa       Registra i tasti premuti nel registro a
     q              Ferma la registrazione dei tasti premuti
     @a       Esegue i comandi registrati dal registro a
     :edit foo.txt  Modifica un altro file caricando foo.txt
     :wnext         Scrive il file corrente e modifica il file successivo

q e @ possono essere utilizzati per la registrazione e la riproduzione delle macro. Per esempio, per creare una macro che inserisca delle tag HTML in corsivo attorno ad una parola nella sede del cursore, si possono dare i seguenti comandi: qii<i>^[ea</i>^[q (dove ^[ è il tasto ESC). Poi, digitando @i all'inizio di una parola aggiungerà le tag <i> e</i>.

Vedere anche Uso con Vim, Sezione 14.5.1.


11.3.2 Tracce per Emacs

     <F1>          Aiuto
     <F10>         Menu
     C-u M-! date -R     Inserisce la data come da RFC-822

11.3.3 Lanciare l'editor

     lancia l'editor:                emacs nomefile  vim nomefile
     lancia un editor vi-compatibile:                vim -C
     lancia un editor non vi-compatibile:            vim -N
     lancia l'editor in modo compilatore di default:      emacs -q        vim -N -u NONE

11.3.4 Riassunto dei comandi (Emacs e Vim)

     esce:                           C-x C-c         :qa /:wq /:xa /:q!
     Ritorno/modo comando:           C-g             <esc>
     Indietro(sinistra):             C-b             h
     Avanti(destra):                 C-f             l
     Successivo(giù):                C-n             j
     Precedente(su):                 C-p             k
     Inizio riga(^):                 C-a             0
     Fine riga($):                   C-e             $
     Comandi multipli:               C-u nnn cmd     :count cmd
     Comandi multipli:               M-numero cmd
     Salva File:                     C-x C-s         :w file
     Inizio buffer:                  M-<          1G
     Fine Buffer:                    M->           G
     avanti di una pagina:           C-v             ^F
     avanti di 1/2 pagina:                           ^D
     avanti di una riga:                             ^E
     indietro di una pagina:         M-v             ^B
     indietro di 1/2 pagina:                         ^U
     indietro di una riga:                           ^Y
     Scorri alla pagina superiore:   M-C-v
     cancella nel cursore:           C-d             x
     cancella dal cursore alla fine 
     della riga:                     C-k             D
     iCerca in avanti:               C-s
     iCerca indietro:                C-r
     cerca in avanti:                C-s enter       /
     cerca indietro:                 C-r enter       ?
     icerca regexp:                  M-C-s
     icerca indietro regexp:         M-x isearch-backward-regexp
     cerca regexp:                   M-C-s enter     /
     cerca indietro regexp:          M-x isearch-backward-regexp enter
                                                     ?
     Aiuto:                          C-h C-h         :help
     Aiuto Apropos:                  C-h a
     Aiuto comandi:                  C-h b           :help [key]
     Aiuto Info:                     C-h i
     Aiuto modo Major:               C-h m
     Aiuto tutorial:                 C-h t           :help howto
     Annulla:                        C-_             u
     Ripeti:                         C-f             ^R
     Marca la posizione del cursore: C-@             m{a-zA-Z}
     Scambia Marcatura e posizione:  C-x C-x
     vai al segno nel file corrente:                 '{a-z}
     vai al segno in un altro file:                  '{A-Z}
     copia regione (di testo):       M-w             {visual}y
     elimina regione:                C-w             {visual}d
     Copia e tieni il buffer:        C-y             p y
     Copia e cancella il buffer:     M-y             p
     Cambia una regione in maiuscolo:C-x C-u         {visual}U
     Cambia una regione in minuscolo:C-x C-l         {visual}u
     Inserisci carattere speciale:   C-q ottale/keystroke  
                                                     ^V decimale/keystroke
     sostituisci:                    M-x replace-string      :%s/aaa/bbb/g
     sostituisci regexp:             M-x replace-regexp      :%s/aaa/bbb/g
     trova e sostituisci:            M-%                     :%s/aaa/bbb/gc
     trova e sostituisci:            M-x query-replace
     trova e sostituisci regexp:     M-x query-replace-regexp
     Apri file:                      C-x C-f         :r file
     Salva file:                     C-x C-s         :w
     Salva tutti i buffers:          C-x s           :wa
     Salva come...:                  C-x C-w file    :w file
     Chiede un buffer specifico:     C-x b
     Elenca i buffer:                C-x C-b         :buffers
     Commuta in sola lettura:        C-x C-q         :set ro
     Chiede ed elimina un buffer:    C-x k
     Divide lo schermo in verticale: C-x 2           :split
     Divide in orizzontale:          C-x 3           :vsplit (ver. 6)
     Muove all'altra finestra:       C-x o           ^Wp
     Cancella la finestra corrente:  C-x 0           :q
     Cancella le/l'altra finestra(e):C-x 1           ^Wo
     lancia una shell sullo sfondo:  M-x compile
     uccide la shell sullo sfondo:   M-x kill-compilation
     lancia make                                     :make Makefile
     controlla i msg di errore:      C-x`            :echo errmsg
     lancia una shell e registra:    M-x shell       :!script -a tmp
     ...pulisce BS, ...                                :!col -b <tmp >record
     ...salva/richiama una 
     registrazione:                  C-x C-w record  :r record
     lancia una shell:               M-! sh          :sh
     lancia un comando:              M-! cmd         :!cmd
     lancia un comando ed inserisce: C-u M-! cmd     :r!cmd
     lancia un filtro:               M-| file        {visual}:w file
     lancia un filtro ed inserisce:  C-u M-| filter  {visual}:!filter
     mostra le opzioni:                              :se[t] {option}?
     riporta l'opzione al default                    :se[t] {option}&
     resetta un'opzione booleana                     :se[t] no{option}
     commuta un'opzioe booleana                      :se[t] inv{option}
     a capo alla colonna 72                          :se tw=72
     niente a capo                                   :se tw=0
     autoindentazione                                :se ai
     estende tabulazione                             :se et
     specifica un commento (posta)                   :se comments=n:>,n:\|
     
     Lancia GDB                      M-x gdb                        
     descrivi il modo GDB            C-h m                          
     salta una riga                  M-s
     riga successiva                 M-n
     salta una istruzione (stepi)    M-i                            
     Finisci lo stack frame corrente C-c C-f                        
     continua                        M-c                            
     up arg frames                   M-u                            
     down arg frames                 M-d                            
     copia un numero a partire dal punto, inseriscilo alla fine 
                                     C-x &                          
     Imposta una cesura              C-x SPC

11.3.5 Configurare Vim

Per utilizzare tutte le caratteristiche di vim e la sintassi evidenziata, includete le linee seguenti in ~/.vimrc oppure /etc/vimrc:

     set nocompatible
     set nopaste
     set pastetoggle=<f11>
     syn on

Il modo incolla evita che l'autoindentazione interferisca con le operazioni di taglia-e-incolla, se eseguite in terminale. E' molto di più di un semplice ":set noai".

Vedere Uso con Vim, Sezione 14.5.1 per l'integrazione con GnuPG.


11.3.6 Ctags

apt-get install exuberant-ctags e lanciate ctags sul file sorgente. Digitando :tag function_name in Vim arrivate alla riga dove inizia function_name. Funziona per C, C++, Java, Python e moltri altri linguaggi.

Emacs possiede la medesima funzionalità.


11.3.7 Convertire una schermata da sintassi-evidenziata in sorgente HTML

so \$VIMRUNTIME/syntax/2html.vim dal modo comando in Vim converte il testo evidenziato in testo HTML. Salvate con :w file.html e :q. Utile per codice in C, ecc.


11.3.8 Dividere lo schermo con vim

vim può aprire più file in un ambiente con uno schermo diviso in più finestre. Digitate :help usr_08.txt per i dettagli.

Per dividere lo schermo e mostrare file differenti, digitate al prompt di vi:

     :split altro-file
     :vsplit altro-file

o al prompt della shell:

     $ vi -o file1.txt file2.txt   # Divide orizzontalmente
     $ vi -O file1.txt file2.txt   # Divide verticalmente

risulterà un vi a molte finestre.

     $ vimdiff file.txt~ file.txt         # controlla i cambiamenti recenti di file.txt
     $ vimdiff file.en.sgml file.fr.sgml  # controlla i cambiamenti fra le traduzioni
     $ gvimdiff file.txt~ file.txt        # in X

fornisce una buona visione con un file di backup. In SGML accoppia le tag, così fare una comparazione fra traduzioni è molto facile.

Movimenti speciali del cursore con i comandi CTRL-W:

     CTRL-W +      ingrandisce una finestra
     CTRL-W -      rimpicciolisce una finestra
     CTRL-W h      va alla finestra di sinistra
     CTRL-W j      va alla finestra inferiore
     CTRL-W k      va alla finestra superiore
     CTRL-W l      va alla finestra di destra
     ...

I controlli seguenti modificano lo scorrimento dello schermo:

     :set scrollbind
     :set noscrollbind

[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ successivo ]

La guida Debian

1.08-3, dom mag 1 07:45:18 UTC 2005

Osamu Aoki osamu@debian.org
Editor: David Sewell dsewell@virginia.edu
Traduzione italiana: Davide Di Lazzaro mc0315@mclink.it
Autori, Sezione A.1