Ricerca personalizzata

lunedì 14 giugno 2010

Guida agli editor di testo per console presenti in Ubuntu.

Editor più popolari.

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.

  • 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.

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 :)

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.

  • 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

Emacs e Vim.

Tracce per Vim.

               Aiuto
Ritorno al modo normale
V Modo Visuale
i Modo Inserimento
: Comandi da console
:set tw=72 Imposta larghezza testo a 72
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^[ea^[q (dove ^[ è il tasto ESC). Poi, digitando @i all'inizio di una parola aggiungerà le tag e.

Tracce per Emacs.
               Aiuto
Menu
C-u M-! date -R Inserisce la data come da RFC-822

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 N

Riassunto dei comandi (Emacs e Vim)
     esce:                           C-x C-c         :qa /:wq /:xa /:q!
Ritorno/modo comando: C-g
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-<> 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 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

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=
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

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à.

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.

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




Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


Ultimi post pubblicati

Universo Linux

0 commenti:

Ultimi post pubblicati

RSVP (Raccomandati Se Vi Piacciono)

Mutui & Finanze on Line

Antipixels & Counters

iFeed WebShake – tecnologia Blogstreet - dove il blog è di casaVero Geek iwinuxfeed.altervista.org Add to Technorati Favorites ElencoSiti tutto blog Aggregatore Directory dei blog italiani Blog360gradi - L’aggregatore di notizie a 360°

 provenienti dal mondo dei blog! BlogItalia.it - La directory italiana dei blog Feed XML offerto da BlogItalia.it Il Bloggatore Italian Bloggers visitor stats Programming Blogs - Blog Catalog Blog Directory Feedelissimo Paperblog : le migliori informazioni in diretta dai blog Notizie Informatiche