[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ A ] [ B ] [ C ] [ D ] [ successivo ]


Debian Tutorial
Capitolo 8 - Creare e modificare file di testo


8.1 Che cos'è un file di testo?

Un file di testo è semplicemente un file normale che contiene testo in forma leggibile. Non c'è nient'altro che lo renda speciale. L'altro tipo di file, un file binario, è pensato per essere interpretato dal computer.

È possibile vedere entrambi i tipi di file con il paginatore di file less, se è installato (se non lo è, lo si installi, è piuttosto utile). Digitare less /etc/profile per vedere un esempio di file di testo: si noti che si possono leggere i caratteri anche se non se ne capisce il significato. Digitare less /bin/ls per vedere un file binario; come si vede, il programma ls non è fatto per essere letto dall'uomo.

La differenza tra i due tipi di file è esclusivamente una questione di ciò che essi contengono, a differenza di altri sistemi (come DOS o MacOS) che trattano realmente i file in modo differente.

I file di testo possono contenere script di shell, documentazione, note sui diritti d'autore o qualsiasi altro testo leggibile.

Ciò, per inciso, illustra la differenza tra codice sorgente e eseguibili binari; /bin/ls è un eseguibile binario che si può scaricare da Debian, ma si può anche scaricare un file di testo che dice al computer come creare /bin/ls. Tale file di testo è il codice sorgente. Confrontare /bin/ls e /etc/profile spiega come sia importante il codice sorgente se si vuole capire e modificare un software. Il software libero fornisce all'utente e ai suoi consulenti tecnici questi importantissimi codici sorgenti.


8.2 Editor di testo

Un editor di testo è un programma usato per creare file di testo e modificarne il contenuto. La maggior parte dei sistemi operativi ha un editor di testo; DOS ha edit, Windows ha Notepad, MacOS ha SimpleText.

Debian fornisce una sorprendente varietà di editor di testo. I due classici sono vi ed emacs; probabilmente sono sia i più potenti che i più usati. Sia vi sia emacs sono piuttosto complessi e necessitano di un po' di pratica, ma possono rendere estremamente efficace la modifica di testi. emacs può essere eseguito sia in terminale che sotto il sistema X Window; vi viene normalmente eseguito in un terminale, ma la variante vim ha un'opzione -g che gli permette di funzionare in X.

Editor più semplici includono nedit, ae, jed e xcoral. nedit e xcoral forniscono interfacce grafiche per il sistema X Window facili da usare. Vi sono anche diverse varianti di vi e una variante di Emacs chiamata XEmacs.

Questo tutorial non si occupa nei dettagli dell'uso di alcun editor particolare, anche se è brevemente introdotto vi dato che è piccolo, veloce e quasi sempre disponibile e potrebbe essere necessario a volte usarlo indipendentemente dal proprio editor preferito. Emacs fornisce un proprio eccellente tutorial interattivo; per leggerlo, avviare Emacs con il comando emacs e digitare F1 t. Emacs è una scelta eccellente per i nuovi utenti interessati a un editor di uso universale o ad un editor per la programmazione.


8.3 Creare e modificare un file di testo con vi

vi (pronunciato "vi ai") è di fatto l'unico editor che viene fornito con quasi tutti i sistemi operativi stile Unix e Debian non fa eccezione. vi è stato scritto in origine nella Università della California a Berkeley. Il nome dell'editor è l'abbreviazione di "visual" (visivo), e si riferisce al fatto che vi fornisce una rappresentazione visiva del testo del file; questa era un tempo considerata una caratteristica unica, e dà un'idea di quanto sia vecchio il programma.

È in un certo senso difficile abituarsi a vi, ma esso ha molte funzionalità potenti. In generale, è consigliabile che un nuovo utente usi Emacs per compiti quotidiani, quali la programmazione. A volte vi è comunque più comodo o è l'unico editor disponibile; è inoltre un file molto più piccolo da scaricare.

La seguente analisi di vi dovrebbe valere anche per le varianti di vi quali elvis e vim.


8.3.1 Creare un file

  1. vi filetest

    Nella propria directory home, invocare vi digitando vi seguito dal nome del file che si desidera creare. Si ottiene una schermata con una colonna di tilde (~) lungo il margine sinistro. vi è ora in modalità di comando. Tutto ciò che si digita viene interpretato come un comando, non come contenuti da aggiungere al file. Per poter inserire del testo è necessario digitare un comando.

  1. i

    I due comandi di base per l'inserimento sono i, che significa "inserire il testo che sta per essere digitato alla sinistra del cursore" e a, che significa "inserire il testo che sta per essere digitato alla destra del cursore". Dato che si è all'inizio di un file vuoto, entrambi funzionano. Si è scelto per l'esempio arbitrariamente di digitare i.

  1. Digitare un po' di testo; se non si riesce a pensare a qualcosa di proprio qui c'è una citazione profonda del filosofo Charles Sanders Peirce:

         E che cos'è, allora, una credenza? 
         È la semicadenza che chiude una frase musicale 
         nella sinfonia della nostra vita intellettuale.  Abbiamo
         visto che essa ha solo tre proprietà: primo, 
         è qualcosa di cui siamo consci; secondo, 
         essa placa l'irritazione del dubbio; e, terzo, essa
         comporta lo stabilirsi nella nostra natura di una 
         regola di azione o, detto brevemente, di un abito.
    

    Premere INVIO dopo ogni riga, dato che vi non si sposta automaticamente alla riga successiva; quando si è finito di scrivere, premere il tasto ESC per lasciare la modalità di inserimento prima o dopo il cursore e ritornare alla modalità di comando.

  1. :wq

    Se si è fatto tutto in maniera corretta, questo comando dovrebbe apparire alla base dello schermo mentre lo si inserisce, sotto a tutti i caratteri ~. Il carattere : comunica a vi che si sta per fornire una serie di comandi; w significa scrivere il file che si è appena digitato: nella maggioranza dei nuovi programmi ciò è chiamato "salvare", e q (quit) significa uscire da vi. Perciò si dovrebbe ritornare al prompt della shell.

  1. cat filetest

    cat mostra a schermo il file che è stato scritto.

Non cancellare filetest, perché verrà usato nella prossima sezione del tutorial.

Quando si usa vi, ricordare sempre che premendo ESC si ritorna alla modalità di comando. Perciò se si è confusi, premere ESC un paio di volte e riniziare da capo.

vi ha la noiosa abitudine di emettere un avviso sonoro ogni volta che si fa qualcosa che non si dovrebbe, come inserire un comando sconosciuto; non allarmarsi per questo.


8.3.2 Modificare un file esistente

Per usare vi, è necessario leggere solamente Muoversi all'interno di un file, Sezione 8.3.2.1 e Cancellare del testo, Sezione 8.3.2.2. Le sezioni successive spiegano funzionalità avanzate, ma non sono strettamente necessarie anche se spesso più efficaci e meno noiose.


8.3.2.1 Muoversi all'interno di un file

vi di Debian permette di usare i tasti freccia per muoversi in un file. Comunque funzionano anche i tasti tradizionali; essi sono h per sinistra, j per basso, k per alto e l per destra. Sono stati scelti questi tasti perché sono uno vicino agli altri nella riga base della tastiera e perciò facili da premere. Molte persone li usano al posto dei tasti freccia perché si raggiungono più velocemente con le dita.

  1. vi filetest

    Apre il file che si è creato in precedenza con vi. Si dovrebbe vedere il testo scritto prima.

  1. Muoversi in giro per il file con i tasti freccia o con i tasti hjkl. Se si cerca di muoversi troppo in qualsiasi direzione, vi emette un avviso sonoro e si rifiuta di muoversi oltre; se si vuole inserire lì del testo, si deve usare un comando di inserimento come i o a.

  1. :q

    Esce da vi.


8.3.2.2 Cancellare del testo

  1. vi filetest

    Riapre il file su cui esercitarsi.

  1. dd

    Il comando dd cancella una riga; la prima riga del file dovrebbe adesso essere scomparsa.

  1. x

    x cancella un singolo carattere; la prima lettera della seconda riga viene cancellata. I tasti Canc e Backspace non funzionano in vi, per ragioni storiche[13]. Alcune varianti di vi, come vim permettono di usare Canc e Backspace.

  1. 10x

    Se si inserisce un numero prima di un comando, il comando viene ripetuto quel numero di volte. Perciò questo comando cancella 10 caratteri.

  1. 2dd

    Si può usare un numero anche con il comando dd, cancellando due righe.

  1. :q

    Questo comando ora causa un errore perché il file è stato modificato ma non è ancora stato salvato. Ci sono due modi per evitare ciò. Si può usare :wq, scrivendo quindi il file al momento di uscire, o si può uscire senza salvare:

  1. :q!

    Con il punto esclamativo si dice a vi che si è veramente decisi e che deve uscire anche se il file non è stato salvato. Se si usa :q! le cancellature fatte non sono salvate in filetest; se si usa :wq, lo sono.

  1. cat filetest

    Essendo tornati al prompt di shell, visualizza filetest. Se si è usato :wq, dovrebbe ora essere più corto oppure essere inalterato, se si è usato :q!.

:q! è un comando perfetto da ricordare, perché lo si può usare per trarsi d'impaccio se si è confusi oltre ogni speranza e se si pensa di aver rovinato il file che si sta modificando. Premere ESC un paio di volte per assicurarsi di essere in modalità di comando e poi digitare :q!. È garantito che ciò causerà l'uscita da vi senza danni.

Adesso si conosce tutto ciò di cui si ha bisogno per fare modifiche di base: inserire, cancellare, salvare e uscire. Le sezioni seguenti descrivono comandi utili per fare le cose più velocemente; se si vuole si può saltarle.


8.3.2.3 Movimenti sofisticati

Ci sono molti comandi per i movimenti, questo è un breve riassunto:

w

Sposta all'inizio della parola successiva

e

Sposta alla fine della parola successiva

E

Sposta alla fine della parola successiva prima di uno spazio

b

Sposta all'inizio della parola precedente

0 (zero)

Sposta all'inizio della riga

^

Sposta alla prima parola della riga attuale

$

Sposta alla fine della riga

INVIO

Sposta all'inizio della riga successiva

-

Sposta all'inizio della riga precedente

G

Sposta alla fine del file

1G

Sposta all'inizio del file

nG

Sposta alla riga numero n

C-G

Mostra il numero della riga attuale

H

Prima riga dello schermo

M

Riga a metà schermo

L

Fine schermo

n|

Sposta il cursore alla colonna n

La schermata scorre automaticamente quando il cursore raggiunge l'estremità superiore o inferiore dello schermo. Ci sono comandi alternativi che possono controllare lo scorrimento del testo.

C-f

Scorre una schermata avanti

C-b

Scorre una schermata indietro

C-d

Scorre mezza schermata in basso

C-u

Scorre mezza schermata in alto


8.3.2.4 Ripetere comandi

Come già detto si può far precedere un comando da un numero per ripetere il comando più volte. Il tasto l, per esempio sposta verso sinistra; 10l sposta di 10 posizioni a sinistra.

Per inserire un certo numero di spazi prima di un testo si può usare un numero con il comando di inserimento. Digitare il numero n poi i seguito da SPAZIO e ESC. Si dovrebbero ottenere n spazi.

I comandi che si riferiscono a righe usano un numero per indicare i numeri di riga. G è un buon esempio: se lo si fa precedere da un numero si sposta a quella riga.


8.3.2.5 Guida di riferimento avanzata

Questa sezione fornisce una lista più completa dei comandi che è possibile usare. È solo un testo di riferimento; si possono provare i comandi, se si vuole, per vedere ciò che fanno.

Comandi di inserimento:

a

Aggiunge testo alla destra del cursore

A

Aggiunge testo alla fine della riga

i

Inserisce testo alla sinistra del cursore

I

Inserisce testo alla sinistra del primo carattere non vuoto nella riga attuale

o

Apre una nuova riga sotto a quella attuale e vi inserisce testo

O

Apre una nuova riga sopra a quella attuale e vi inserisce testo

Comandi per cancellare:

x

Cancella il carattere sotto al cursore

dw

Cancella dalla posizione attuale fino alla fine della parola

dd

Cancella la riga attuale

D

Cancella dalla posizione attuale alla fine della riga

I comandi, se combinati tra loro, possono essere più potenti. d, in particolare, se seguito da un comando di movimento cancella dal cursore fino a dovunque il comando provochi lo spostamento. Alcuni esempi:

dnw

Cancella n parole (anche ndw funziona)

dG

Cancella dalla posizione attuale fino alla fine del file

d1G

Cancella dalla posizione attuale fino all'inizio del file

d$

Cancella dalla posizione attuale fino alla fine della riga (come D)

dn$

Cancella dalla riga attuale fino alla fine della riga numero n

Comandi di annullamento:

u

Annulla l'ultimo comando

U

Annulla tutte le modifiche alla riga attuale

:e!

"Rimodifica". Equivalente a uscire con :q! e riavviare; fa ritornare all'ultima volta che è stato usato :w per salvare.

Si può annullare un'operazione di annullamento, perciò uu ha come risultato un annullamento annullato cioè nessun cambiamento.

Comandi di sostituzione:

rc

Sostituisce il carattere sotto il cursore con c

R

Sovrascrive il testo

cw

Cambia la parola attuale

c$

Cambia il testo tra la posizione attuale e la fine di riga

cnw

Cambia le prossime n parole (come ncw)

cn$

Cambia fino alla fine della riga numero n

C

Cambia fino alla fine di riga (come c$)

cc

Cambia la riga attuale

s

Sostituisce il testo inserito al carattere attuale

ns

Sostituisce il testo inserito ai prossimi n caratteri

Dai comandi nella lista soprastante che permettono di inserire più di un singolo carattere di testo si deve uscire usando il tasto ESC, ritornando cosė alla modalità di comando.

Il taglia e incolla implica prima l'afferrare (tagliare o copiare) del testo e il posizionarlo in un buffer (o "appunti"), quindi il muoversi nella nuova posizione voluta e poi incollare il testo.

Per tagliare del testo usare il comando y e le sue varianti:

yy

Prende una copia della riga attuale

nyy

Prende le prossime n righe

yw

Prende una parola

ynw

Prende n parole

y$

Prende il testo tra il cursore e la fine di riga

Comandi per incollare:

p

Incolla alla destra del cursore

P

Incolla alla sinistra del cursore

nP

Incolla n copie alla sinistra del cursore

Quando si usa vi all'interno di un xterm o si usa una variante di vi con il supporto per X, si può anche usare il mouse per copiare del testo. Per copiare e incollare testo in X vedere Il sistema X Window, Capitolo 10; assicurarsi di essere in modalità di inserimento quando si incolla, altrimenti il testo incollato sarà interpretato come un comando.

Quando si cancella, il testo cancellato viene copiato nel buffer (appunti); si possono poi usare i comandi per incollare. Questo permette di fare il taglia-e-incolla, mentre i comandi y hanno come risultato un copia-e-incolla.

vi ha comandi per cercare del testo. Possono anche essere usati come comandi per muoversi se ci si vuole spostare ad una parola o un carattere particolari.

I comandi di ricerca più semplici cercano caratteri.

fc

Trova il prossimo carattere c alla destra o sotto alla posizione attuale

Fc

Trova il prossimo carattere c alla sinistra o sopra alla posizione attuale

tc

Sposta a destra fino al carattere che precede il prossimo carattere c

Tc

Sposta a sinistra fino al carattere che segue il primo carattere c trovato

;

Ripete l'ultimo comando di ricerca carattere

,

Come ; ma in direzione inversa rispetto al comando originale

Se il carattere cercato non viene trovato, vi emette un avviso sonoro o dà un qualche segnale. vi permette di cercare qualsiasi testo, non solamente un carattere.

/testo

Cerca a destra e in basso la prossima occorrenza di testo

?testo

Cerca a sinistra e in alto la prossima occorrenza di testo

n

Ripete l'ultimo comando / o ?

N

Ripete in direzione opposta l'ultimo comando / o ?

Quando si usano i comandi / o ? viene liberata una riga alla fine dello schermo. Inserire il testo da cercare seguito da INVIO.

Il testo nel comando / o ? è in realtà una espressione regolare, si veda Espressioni regolari, Sezione 11.1.


[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ A ] [ B ] [ C ] [ D ] [ successivo ]


Debian Tutorial

30 settembre 2007

Havoc Pennington hp@debian.org