giugno 14, 2010

Guida agli editor di testo per console presenti in Ubuntu.

| No comment
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

Trovato questo articolo interessante? Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google, Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie! CONDIVIDI SU!

stampa la pagina
, , , , , ,

Nessun commento:

Posta un commento

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.

Ultimi post pubblicati

Archivio

Etichette

Ubuntulandia in Pinterest

Post Più Popolari