Linux molte scelte fra gli editor di testo per console. Fra questi elenchiamo:
vim
: Editor di eredità BSD potente e leggero. VI iMproved.
emacs
: L'editor definitivo di eredità GNU, pesante. Originale da
RMS (Richard M. Stallman).
xemacs
: "Emacs: The Next Generation", in origine da
Lucid.
mcedit
: Editor GNU per principianti. Identico all'editor interno
di mc
. Vedere L'editor in
MC, Sezione 4.2.5.
ae
: Piccolo editor di default (Potato). Evitatelo.
nano
: Piccolo editor GNU di default (Woody). Emula
pico
.
joe
: Per i nostalgici di WordStar o TurboPascal.
jed
: Editor veloce, ricco di dotazioni, completamente gestito da
menu, con comandi da tastiera Emacs.
jove
: Editor molto piccolo, con comandi da tastiera Emacs.
nvi
: Il nuovo vi. Compatibile baco per baco con il vi originale.
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:
gvim
: Vim con GUI (pacchetti vim
e
vim-gtk
)
emacs
: L'Unico Vero Emacs (riconosce automaticamente X).
xemacs
: Emacs di nuova generazione (riconosce automaticamente 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.
Esistono alcuni editor che risiedono in /bin
. Uno di questi
dovrebbe essere installato, per facilitare la modifica dei file quando
/usr
non è accessibile.
elvis-tiny
: Editor minimo vi (vi
per lanciarlo)
nano-tiny
: Editor minimo non-vi (nano-tiny
per
lanciarlo)
nano
: Editor minimo non-vi (nano
per lanciarlo
(Sarge)
ed
: Editor minimo (sempre lì, ma difficile da usare)
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.
<F1> Aiuto <F10> Menu C-u M-! date -R Inserisce la data come da RFC-822
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
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
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.
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à.
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.
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
La guida Debian
1.08-3, dom mag 1 07:45:18 UTC 2005osamu@debian.org
dsewell@virginia.edu
mc0315@mclink.it