Comando vi

Scopo

Modifica i file con una visualizzazione a schermo intero.

Sintassi

{ vi | vedit } [ -l ] [ -R ] [ -tTag ] [ -v ] [ -wNumero] [ -yNumero ] [ -r [ File ] ] [{ + | -c } { Sottocomando } ] [ File ... ]

Descrizione

Il comando vi avvia un editor a schermo intero basato sull'editor ex integrato. Pertanto, nell'editor vi è possibile utilizzare i sottocomandi ex. Il comando vedit avvia una versione dell'editor vi per principianti. Nell'editor vi, l'opzione report è impostata su 2, è impostata l'opzione showmode e quella novice, rendendolo un editor di righe.

Per avviare l'editor vi si specifica il nome del file o dei file da modificare. Se si fornisce più di un parametro File nella riga comandi, l'editor vi modifica ciascun file nell'ordine specificato. L'editor vi in un file esistente visualizza il nome del file, il numero di righe e il numero di caratteri nella parte inferiore dello schermo. In caso di più locali, il numero di caratteri deve essere interpretato come numero di byte.

Siccome vi è un editor a schermo intero, è possibile modificare il testo ad un pannello alla volta. L'editor vi esegue una copia del file che si sta modificando nel buffer di modifica e i contenuti del file non vengono modificati fino al salvataggio delle modifiche. La posizione del cursore nel pannello di visualizzazione ne indica la posizione nel file e i sottocomandi che influenzano il file nella posizione del cursore.

Limitazioni dell'editor vi

L'elenco riportato di seguito fornisce il limiti massimi dell'editor vi. Questo conteggio presuppone i caratteri a singolo byte.

Nota:
l'esecuzione dell'editor vi in un file superiore a 64 MB può causare la visualizzazione del seguente messaggio di errore:
0602-103 file troppo esteso per l'indirizzario /tmp

Modalità di modifica vi

L'editor vi funziona nelle seguenti modalità:

modalità di comando Quando si avvia l'editor vi, è in modalità di comando. E' possibile immettere una qualsiasi sottocomando tranne quelli designati solo per la modalità di immissione testo. L'editor vi restituisce la modalità di comando quando i sottocomandi e le altre modalità terminano. Premere il tasto Esc per annullare un sottocomando.
modalità di immissione testo E' possibile utilizzare l'editor vi in questa modalità per aggiungere testo. Avviare la modalità di immissione testo con uno dei seguenti sottocomandi: il sottocomando a, il sottocomando A, il sottocomando i, il sottocomando I, il sottocomando o, il sottocomando O, i sottocomandi cx (in cui x rappresenta l'ambito del sottocomando), il sottocomando C, il sottocomando s, il sottocomando S e quello R. Dopo aver immesso uno dei sottocomandi, è possibile immettere il testo nel buffer di modifica. Per ritornare alla modalità di comando, premere il tasto ESC per uscire normalmente o utilizzare la sequenza di interruzione Crtl-C per terminare in maniera anomala.
modalità ultima riga I sottocomando con il prefisso : (due punti), / (barra), ? (punto interrogativo), ! (punto esclamativo) o !! (due punti esclamativi) leggono l'immissione in una riga visualizzata nella parte inferiore dello schermo. Quando si immette il carattere iniziale, l'editor vi ubica il cursore nella parte inferiore dello schermo, da dove vengono immessi i caratteri rimanenti del comando. Premere il tasto Invio per eseguire il sottocomando o eseguire la sequenza di interruzione premendo i tasti Crtl-C, per annullarlo. Quando si utilizza il prefisso !! , il cursore si sposta solo dopo aver immesso entrambi i punti esclamativi. Quando si utilizza il prefisso : per passare alla modalità ultima riga, l'editor vi considera i seguenti caratteri come speciali se vengono utilizzati prima di comandi che specificano conteggi:
%
Tutte le righe indipendentemente dalla posizione del cursore
$
L'ultima riga
.
La riga corrente

Personalizzazione dell'Editor vi

E' possibile personalizzare l'editor vi, mediante le seguenti operazioni:

Impostazione delle opzioni dell'Editor vi

L'elenco seguente descrive le opzioni dell'editor vi che possono essere modificate mediante il comando set. L'impostazione predefinita per queste opzioni è off (disattivata). Se si attiva una di queste opzioni di commutazione è possibile disattivarla di nuovo immettendo la parola no prima dell'opzione. Per disattivare l'opzione di vi autowrite, immettere noaw, n cui no disattiva l'opzione e aw specifica l'opzione autowrite.

Nota:
non includere le parentesi durante l'immissione delle opzioni vi.
Opzione vi (Abbreviazione) Descrizione
autoindent (ai) Esegue il rientro automatico in modalità di immissione testo sul rientro utilizzato nella riga precedente utilizzando la spaziatura tra gli arresti di tabulazione specificati mediante l'opzione shiftwidth. Il valore predefinito è noai. Per riportare il cursore sul valore di arresto tabulazione precedente, premere la sequenza di tasti Ctrl-D. Questa opzione non si applica ai comandi globali.
autoprin (ap) Stampa la riga corrente dopo un comando che modifica il buffer di modifica. Il valore predefinito è ap. Questa opzione si applica solo all'ultimo comando di una sequenza di comandi in una riga singola e non si applica ai comandi globali.
autowrite (aw) Scrive automaticamente il buffer di modifica in un file prima del sottocomando :n, :ta, delle sequenze di tasti Ctrl-A, Ctrl -] e Crtl -T e del sottocomando ! se il buffer di modifica è stato modificato dall'ultima esecuzione del sottocomando write. Il valore predefinito è noaw.
backtags (bt) Consente al sottocomando Ctrl-T di riportare la posizione di modifica file sull'ubicazione in cui era stato emesso il sottocomando Ctrl-] precedente. Se nobacktags è impostata, Ctrl-T è uguale a Ctrl-]. Il valore predefinito è backtags.
beautifying text (bf) Impedisce che l'utente immetta i caratteri di controllo nel buffer di modifica durante l'immissione del testo (tranne gli indicatori di modulo continuo, tabulazione e nuova riga). Il valore predefinito è nobf. Questa opzione si applica all'immissione di comando.
closepunct (cp=) Gestisce un elenco di punteggiatura di chiusura, specialmente per il ritorno a capo del testo (opzione wraptype). Precede la punteggiatura a più caratteri con il numero di caratteri, ad esempio cp=3..;)}. Il comando vi non divide la punteggiatura di chiusura durante il ritorno a capo.
directory (dir=) Visualizza l'indirizzario che contiene il buffer di modifica. Il valore predefinito è dir = /var/tmp.
edcompatible (ed) Conserva i suffissi di sottocomando g (global) e c (confirm), durante le sostituzioni multiple e fa in modo che il suffisso r (read) funzioni come il sottocomando r. Il valore predefinito è noed.
exrc (exrc) Se non è impostata, ignora tutti i file .exrc nell'indirizzario corrente durante l'inizializzazione a meno che l'indirizzario corrente sia quello specificato nella variabile di ambiente HOME. Il valore predefinito è noexrc.
hardtabs (ht=) Indica all'editor vi la distanza tra gli arresti di tabulazione hardware nel pannello dello schermo. (Questa opzione deve corrispondere all'impostazione di tabulazione del terminale o dell'emulazione di terminale.) Il valore predefinito è ht=8.
ignorecase (ic) Ignora le distinzione tra maiuscolo e minuscolo durante la ricerca di espressioni regolari. Il valore predefinito è noic.
linelimit (ll=) Imposta il numero massimo di righe, come l'opzione di riga comandi -y. Questa opzione si applica solo se viene utilizzata con il file .exrc o con la variabile di ambiente EXINIT.
lisp (lisp) Rimuove il significato speciale da ( ), { }, [ [ e ] ] ed abilita l'operatore = (stampa formattata) per le espressioni s, rendendo possibile la modifica dei programmi LISP (list processing programs). Il valore predefinito è nolisp.
list (list) Visualizza il testo con i tabulatori (^I) e la fine contrassegnata delle righe ($). Il valore predefinito è nolist.
magic (magic) Considera il . (punto), [ (parentesi di apertura quadra), e * (asterisco) come caratteri speciali in fase di ricerca di uno schema. In modalità off, conservano un significato speciale solo ( ) (parentesi) e $ (simbolo del dollaro). Tuttavia è possibile dare un significato speciale ad altri caratteri facendoli precedere da \ (barra retroversa). Il valore predefinito è magic.
mesg (mesg) Attiva il permesso di scrittura nel terminale se l'opzione viene impostata durante l'utilizzo della modalità visuale. Questa opzione si applica solo se viene utilizzata con il file .exrc o con la variabile di ambiente EXINIT. Il valore predefinito è on.
modeline (modeline) Esegue una riga comandi dell'editor vi se viene rilevata nelle prime cinque o nelle ultime righe del file. Una riga di comandi dell'editor vi può trovarsi in una qualsiasi punto di una riga. Per essere riconosciuta dall'editor vi, una riga comandi deve contenere uno spazio o una tabulazione seguiti dalla stringa ex: o vi:. La riga comandi viene terminata da un secondo simbolo : (due punti). L'editor vi tenta di interpretare i dati che si trovano tra la prima e la seconda colonna come comandi dell'editor vi. Il valore predefinito è nomodeline.
novice Indica se si è in modalità novice. Non è possibile modificare il valore mediante il comando set.
number (nu) Visualizza le righe con i numeri di riga ad inizio riga. Il valore predefinito è nonu.
optimize (opt) Velocizza il funzionamento dei terminali che non dispongono dell'indirizzamento del cursore. Il valore predefinito è noopt.
paragraphs (para=) Definisce i nomi delle macro vi che iniziano i paragrafi. Il valore predefinito è para=IPLPPPQPP\ LIpplpipnpbp. Le macro a lettera singola nroff, come ad esempio la macro .P, devono includere lo spazio come un carattere racchiuso tra virgolette nel caso di specifica di un paragrafo.
partialchar (pc=) Visualizza l'ultima colonna dello schermo in cui un carattere con larghezza doppia non verrebbe visualizzato completamente. Il carattere predefinito è - (segno meno).
prompt Richiede un nuovo comando dell'editor vi durante la modalità di comando, visualizzando il simbolo : (due punti). Il valore predefinito è on.
readonly (ro) Imposta la modalità di sola lettura permanente. Il valore predefinito è noreadonly.
redraw (redraw) Simula una stazione di lavoro smart in una stazione di lavoro dumb. Il valore predefinito è nore.
remap Consente la definizione di macro nelle condizioni di altre macro. Il valore predefinito è on.
report (re=) Imposta il numero di volte per cui è possibile ripetere un comando prima che venga visualizzato un messaggio. Per i sottocomandi che generano numerosi messaggi, come ad esempio i sottocomandi globali, i messaggi vengono visualizzati quando si completa la sequenza di comandi. Il valore predefinito è report=5.
scroll (scr=) Imposta il numero di righe da scorrere quando l'utente scorre il cursore verso l'alto o verso il basso. Il valore predefinito è 1/2 della dimensione della finestra, arrotondato per difetto.
sections (sect=) Definisce i nomi delle macro vi che avviano le sezioni. Il valore predefinito è sect=NHSHHH\ HUuhsh+c. Le macro a lettera singola nroff, come ad esempio .P, devono includere lo spazio come un carattere racchiuso tra virgolette nel caso di specifica di un paragrafo.
shell (sh=) Definisce lo shell per il sottocomando ! o per il sottocomando :! . Il valore predefinito è lo shell login.
shiftwidth (sw=) Imposta la distanza per gli arresti di tabulazione software utilizzati dall'opzione autoindent, dai comandi shift ( > e < ) e dai comandi di immissione testo (le sequenze di tasti Ctrl-D e Ctrl-T). Questa opzione vi influenza solo il rientro all'inizio di una riga. Il valore predefinito è sw=8.
showmatch (sm) Mostra la ( (parentesi di apertura corrispondete) o { (parentesi graffa di apertura) quando si immette ) (parentesi di chiusura) o } (parentesi graffa di chiusura). Il valore predefinito è nosm.
showmode (smd) Visualizza un messaggio per indicare quando l'editor vi è in modalità di immissione. Il valore predefinito è nosmd.
slowopen (slow) Posticipa l'aggiornamento del pannello dello schermo durante gli inserimenti. Il valore predefinito è noslow.
tabstop (ts=) Imposta la distanza tra gli arresti di tabulazione in un file visualizzato. Il valore predefinito è ts=8.
tags (tags =) Definisce il percorso di ricerca per il file database o i nomi funzione creati utilizzando il comando ctags. Il valore predefinito è tags=tags\ /usr/lib/tags.
term (term=) Imposta il tipo di stazione di lavoro che si sta utilizzando. Il valore predefinito è term=$TERM, in cui $TERM è il valore della variabile di shell TERM.
terse (terse) Consente all'editor vi di visualizzare il formato breve dei messaggi. Il valore predefinito è noterse.
timeout (to) Imposta un limite di tempo di due secondi per un'immissione di caratteri. Questo limite consente ai caratteri in una macro di essere immessi ed elaborati come caratteri separati quando è impostata l'opzione timeout. Per riprendere l'utilizzo della macro, impostare l'opzione notimeout. Il valore predefinito è to.
ttytype Indica il tipo di tty per il terminale da utilizzare. Non è possibile modificare questo valore dall'editor vi.
warn (warn) Visualizza un messaggio di avvertenza prima che il sottocomando ! esegue un comando di shell la prima volta che viene emesso dopo che erano state apportate modifiche nel buffer di modifica che non erano state scritte in un file. Il valore predefinito è warn.
window (wi=) Imposta il numero di righe visualizzate nella finestra di testo. Il valore predefinito dipende dalla velocità in baud: 600 baud o inferiore, 8 righe; 1200 baud, 16 righe; velocità superiori, a schermo intero meno una riga.
wrapmargin (wm=) Imposta il margine per il ritorno a capo automatico da una riga all'altra. Il valore predefinito è wm=0. Il valore 0 disattiva il ritorno a capo.
wrapscan (ws) Consente alle ricerche stringa di ritornare dalla fine all'inizio del buffer di modifica. Il valore predefinito è ws.
wraptype (wt=) Indica il metodo utilizzato per il ritorno a capo alla fine di una riga. Il valore predefinito è general. E' possibile specificare uno dei seguenti 4 valori:
general
Consente il ritorno a capo sulle interruzioni di parola come spazi bianchi tra due caratteri. Questa è l'impostazione predefinita.
word
Consente il ritorno a capo nelle parole.
rigid
Consente il ritorno a capo nelle colonne e prima della punteggiatura di chiusura.
flexible
Consente il ritorno a capo sulle colonne, ma un carattere di punteggiatura può estendere il margine.
writeany (wa) Disattiva le verifiche eseguite di solito prima di un sottocomando write. Il valore predefinito è nowa.

Per visualizzare un elenco delle impostazioni dell'editor vi che sono state modificate rispetto ai valori predefiniti, immettere set e premere la barra spaziatrice. Premere il tasto Invio per ritornare alla modalità di comando.

Per visualizzare un elenco completo delle impostazioni dell'editor vi, immettere set all. Premere il tasto Invio per ritornare alla modalità di comando.

Per attivare un'opzione dell'editor vi, immettere set Opzione. Questo comando ritorna automaticamente alla modalità di comando.

Per attivare più opzioni dell'editor vi, immettere set Opzione Opzione Opzione. Questo comando attiva le tre opzioni dell'editor vi designate e ritorna alla modalità di comando.

Per disattivare un'opzione dell'editor vi, immettere set no Opzione. Questo comando ritorna automaticamente alla modalità di comando.

Per modificare il valore di un'opzione dell'editor vi, immettere set Opzione=Valore. Questo comando ritorna automaticamente alla modalità di comando.

E' possibile utilizzare il sottocomando :set dell'editor vi per impostare le opzioni solo per la sessione di modifica corrente oppure per quella corrente e per quelle successive.

Per impostare o modificare le opzioni dell'editor vi solo per la sessione corrente, immettere il sottocomando :set dalla riga comandi.

Per impostare le opzioni vi per tutte le sessioni di modifica, inserire il sottocomando :set nella variabile di ambiente EXINIT nel file .profile (letto dallo shell in fase di accesso) o inserire il sottocomando set in un file .exrc. L'editor vi ricerca prima nella variabile di ambiente EXINIT ed esegue quindi i comandi. Se la variabile di ambiente EXINIT non esiste, l'editor vi ricerca nel file $HOME/.exrc ed esegue i comandi. Infine ed indipendentemente dai risultati precedenti, l'editor vi ricerca nel file .exrc locale ed esegue i comandi.

Nota:
questo processo è valido tranne che con il comando tvi (trusted vi). In tal caso, l'editor vi ricerca ed esegue solo il file /etc/.exrc.

Per informazioni relative alla modifica di un opzione mediante l'impostazione della variabile di ambiente EXINIT, consultare la descrizione delle variabili di ambiente nel file environment.

Il file .exrc può contenere i sottocomandi nel formato set Opzione=Valore; ad esempio:

set cp=3 . . ;

Per includere un commento nel file .exrc, utilizzare un " (doppio punto esclamativo) come primo carattere della riga.

Definizione delle macro

Se si utilizza spesso un sottocomando o una sequenza di sottocomandi, è possibile utilizzare l'editor vi per definire una macro che emette tale comando o sequenza.

Per definire una macro, immettere la sequenza di sottocomandi in un buffer denominato con una lettera dell'alfabeto. Le lettere minuscole dalla a alla z si sovrappongono al contenuto del buffer, consentendo di creare una macro un pezzo alla volta.

Ad esempio, per definire una macro di buffer denominata c che ricerca la parola corner e rende la terza linea successiva a tale parola quella corrente, immettere il seguente comando:

o /corner/+3

Premere quindi il tasto Esc ed immettere il seguente comando:

"c

in cui c è il nome della macro di buffer.

Per aggiungere testo al contenuto precedente del buffer definito, immettere il sottocomando o vi, premere quindi il tasto Esc ed immettere "LetteraMaiuscola, in cui la variabile LetteraMaiuscola specifica una lettera maiuscola compresa tra A e Z. Ad esempio, per creare una macro di buffer denominata T che ricerca per la parola corner e consente di aggiungere ulteriori comandi, immettere il seguente comando:

o corner

Premere quindi il tasto Esc ed immettere il seguente comando:

"T

in cui T è il nome della macro di buffer. E' possibile ripetere questo processo in qualsiasi momento per aggiungere ulteriori sottocomandi vi allo stesso buffer.

Ad esempio, per aggiungere i comandi che spostano il cursore sulla riga precedente ed eliminare tale riga, immettere il seguente comando:

o -dd

in cui - (segno meno) indica di spostare il cursore verso l'alto di una riga e dd indica di eliminare la riga corrente. Premere il tasto Esc ed immettere il seguente comando:

"Tdd

Per avviare la macro, immettere @Lettera, in cui la variabile Lettera specifica il nome della lettera della macro di buffer da utilizzare. Per utilizzare di nuovo la stessa macro, immettere @@ (due simboli chiocciola). Ad esempio, immettere @T per avviare la macro di buffer T ed eseguire i comandi search, move cursor e delete line. Immettere @@T per avviare di nuovo la macro di buffer T.

La serie di caratteri utilizzata dal sistema è definita dalla tabella collation. Tale tabella influenza le prestazioni delle macro vi.

Associazione dei tasti

E' possibile utilizzare i sottocomandi :map, :map! e :ab per associare un tasto ad un comando o ad una sequenza di comandi. Il sottocomando :map viene utilizzato in modalità di comando. I sottocomandi :map! e :ab sono utilizzati nella modalità di immissione testo. E' possibile associare tasti per la sessione di modifica corrente e per quelle successive o solo per quella corrente da entrambe le modalità.

Per associare tasti per tutte le sessioni di modifica successive, inserire il sottocomando in un file $HOME/.exrc. Ogni volta che viene avviato, l'editor vi legge tale file. L'associazione resta in vigore per ciascuna sessione di modifica.

Per associare tasti solo per la sessione di modifica corrente dalla modalità di comando, avviare il sottocomando durante la sessione dell'editor vi. Per associare tasti solo per la sessione di modifica corrente dalla modalità di immissione testo, immettere il sottocomando dalla riga comandi durante la sessione dell'editor vi. L'associazione resta in vigore solo per la sessione di modifica corrente.

Attenzione: Se si utilizza una stazione di visualizzazione IBM 3161 ASCII, IBM 3163 ASCII o IBM 3101 ASCII l'associazione tasti predefinita dell'editor vi può causare perdite di dati. Per visualizzare l'associazione predefinita, emettere un sottocomando :map. Con la sequenza di tasti Esc-J o Shift-J sorgono problemi specifici. Tali sequenze di tasti eliminano tutte le informazioni dalla posizione corrente del cursore fino alla fine del file. Per evitare problemi, modificare questa sequenza di tasti, utilizzando un file .exrc.

I sottocomandi :map, :map! e :ab vengono definiti ed utilizzati nel modo riportato di seguito:

:map Definisce le macro in modalità di comando. Il sottocomando :map consente di eseguire un comando o una sequenza di comandi specificati premendo un singolo tasto nell'editor vi.

Per associare tasti in modalità di comando, avviare l'editor vi con un buffer di modifica vuoto e non denominare un file vi utilizzando il comando vi o eseguendo un'immissione nel buffer dopo l'avvio dell'editor vi. E' possibile utilizzare il sottocomando :map per eseguire quanto riportato di seguito:

  • Per associare un carattere ad una sequenza di comandi di modifica, immettere:

    :map Lettera viSubcommand
  • Per dissociare un carattere associato precedentemente in modalità di comando, immettere:

    :unmap Lettera
  • Per visualizzare un elenco delle associazioni correnti per la modalità di comando, immettere:

    :map

Le seguenti chiavi non sono utilizzate dall'editor vi, ma sono disponibili per l'utilizzo con il sottocomando :map in modalità di comando:

  • Lettere g, K, q, V e v
  • Sequenze di tasti di controllo Ctrl-A, Ctrl-K, Ctrl-O, Ctrl-W e Ctrl-X
  • Simboli _ (sottolineatura), * (asterisco), \ (barra retroversa) e = (uguale)

Sebbene sia possibile associare un tasto già utilizzato dall'editor vi, la funzione normale del tasto non è disponibile fino a quando è in vigore l'associazione. Alcuni terminali consentono di associare sequenze di comando ai tasti di funzione. Se si sta utilizzando la modalità LISP, il simbolo = (uguale) non può essere utilizzato poiché è utilizzato dall'editor vi.

Per associare la lettera v alla sequenza di comandi che ricerca la ricorrenza successiva della parola map e la modifica in MAP, immettere il seguente comando:

:map v /map<Ctrl-V><Enter>cwMAP<Ctrl-V><Esc><Ctrl-V><Enter>

L'esempio precedente richiede all'editor vi di ricercare la ricorrenza successiva di map (F /map<Ctrl-V><Enter>), cambiare map con MAP (cwMAP), terminare il sottocomando change-word (modifica parola) (<Ctrl-V><Esc>) ed immettere il comando (<Ctrl-V><Enter>).

Nota:
per impedire all'editor vi di interpretare il tasto Enter (Invio), deve essere preceduto dalla sequenza di tasti Crtl-V, durante l'associazione. Questa condizione è vera anche per i tasti Esc, Backspace (Indietro) e Canc.

Per associare i caratteri di controllo Ctrl-A, Ctrl-K e Ctrl-O, premere contemporaneamente il tasto Ctrl e la lettera. Ad esempio, per associare la sequenza di tasti Ctrl-A alla sequenza di comandi che salva un file e modifica il successivo in una serie, immettere il seguente comando:

:map <Ctrl-A> :w<Ctrl-V><Enter>:n<Ctrl-V><Enter>

Per associare i caratteri di controllo Ctrl-T, Ctrl-W e Ctrl-X, è necessario utilizzarli con la sequenza di escape Ctrl-V.

 

Per associare | (simbolo pipe), è necessario inserirlo prima nelle sequenze di tasti Ctrl-V di escape, nel modo illustrato nell'esempio seguente, che associa il carattere g alla sequenza di comandi che esegue l'escape dello shell, concatena il file /etc/motd e indirizza l'emissione nel comando wc:

:map g :!cat /etc/motd <Ctrl-V><Ctrl-V>| wc<Ctrl-V><Enter>

Se il proprio terminale consente di associare i tasti funzione, è necessario specificarli con la sequenza di tasti #numero per designare il numero del tasto funzione da associare. Nell'esempio seguente, il tasto funzione F1 viene associato alla sequenza di comandi che elimina una parola e sposta il cursore tra parole più in basso:

:map #1 dwwww

Per consentire il funzionamento dell'associazione dei tasti funzione, l'emissione del tasto funzione per il tipo di terminale deve corrispondere all'emissione definita nel file terminfo. Queste definizioni sono contrassegnate dalle voci kfnumero, in cui kf1 rappresenta il tasto funzione F1, kf2 rappresenta il tasto funzione F2 e così via. Se l'emissione che si ottiene premendo il tasto funzione non corrisponde a questa voce, è necessario utilizzare la modalità di configurazione del terminale per correggere le impostazioni in modo che corrispondano alle voci del database del terminale, rendendo quindi possibile l'associazione.

E' possibile anche associare alcuni tasti speciali della tastiera, come ad esempio i tasti Home, Fine, Pagina su e Pagina giù. Per la maggior parte dei terminali, questi tasti sono già associati nell'editor vi. E' possibile verificare questa associazione utilizzando il sottocomando :map. Se questi tasti non sono già assegnati, è possibile utilizzare il sottocomando :map nel modo indicato di seguito:

:map <Ctrl-V><End> G
:map <Ctrl-V><Home> 1G
:map <Ctrl-V><PageUp> <Ctrl-F>
:map <Ctrl-V><PageDown> <Ctrl-B>

Per richiamare un elenco di tutte le associazioni correnti nella modalità di comando, immettere il sottocomando :map. Gli esempi precedenti vengono quindi visualizzati nel modo seguente:

v         v          /map<Ctrl-M>cwMAP<Ctrl-[>Ctrl-M>
<Ctrl-A>  <Ctrl-A>   :w<Ctrl-M>:n<Ctrl-M>
g         g          :!cat /etc/motd | wc <Ctrl-M>

Nota:
la sequenza di tasti Ctrl-V e Enter viene visualizzata come la sequenza di tasti Ctrl-M e quella Ctrl-V e Esc viene visualizzata come la sequenza di tasti Ctrl-[.
:map! Associa le stringhe di caratteri a singoli tasti durante la modalità di immissione testo. Per associare tasti in modalità di immissione testo, avviare l'editor vi con un buffer di modifica vuoto e non denominare un file vi utilizzando il comando vi o eseguendo un'immissione nel buffer dopo l'avvio dell'editor vi. E' possibile utilizzare il sottocomando :map! per eseguire quanto segue:
  • Per associare una lettera ad una o più stringhe in modalità di immissione testo, immettere:

    :map! Lettera Stringa
  • Per dissociare una lettera associata precedentemente in modalità di immissione testo, immettere:

    :unmap! Lettera
  • Per visualizzare un elenco delle stringhe esistenti associate a specifici tasti in modalità di immissione testo, immettere:

    :map!

Digitando il tasto associato in modalità di immissione testo, viene generata la stringa specificata. La sequenza di tasti Ctrl-V e Esc avvia la modalità di comando, ritorna all'inizio della parola corrente ( bbw) e avvia il sottocomando cw (change-word). Ad esempio:

:map! % <Ctrl-V><Esc>bbwcw

Durante la digitazione del testo, se si digita una parola in modo non corretto, è possibile modificarla premendo il tasto % (percento) e reinserendo la parola. Si ritorna automaticamente alla modalità di inserimento.

Nota:
Prestare attenzione durante la scelta dei tasti da utilizzare per il sottocomando :map! . Una volta associati, i tasti non possono essere più immessi come testo senza emettere prima il sottocomando :unmap! .
:ab Associare un tasto o una sequenza di tasti ad una stringa di caratteri da utilizzare in modalità di immissione testo. Il sottocomando :ab è utile durante l'immissione di testo che presenta diverse frasi, nomi e titoli ripetitivi.

L'esempio seguente sostituisce la parola city con la frase Austin, Texas 78759 ogni volta che viene immessa in modalità di immissione testo ed è seguita da uno spazio, un punto o una virgola:

:ab city Austin, Texas 78759

Ad esempio, se durante l'immissione del testo, si digita quanto segue:

La mia residenza corrente è city.

Premendo il tasto tab, si espande la parola city visualizzando:

La mia residenza corrente è Austin, Texas 78759.

L'abbreviazione non viene espansa se si trova in una parola. Ad esempio, se si digita La mia residenza corrente ècity, la parola ècity non viene espansa.

Se il sottocomando :map! viene utilizzato per associare abbreviazioni per la modalità di inserimento, tutte le ricorrenze delle abbreviazioni verranno espanse indipendentemente da quando si verificano. Se era stato utilizzato il sottocomando :map! per l'esempio precedente :map! city Austin, Texas 78759), ogni volta che si digita la parola city, indipendentemente da quanto la precede o la segue, la parola verrà espansa per visualizzare Austin, Texas 78759. Pertanto, la parola ècity diventa èAustin, Texas 78759.

Nota:
Scegliere con attenzione le chiavi da utilizzare per il sottocomando :ab. Una volta definite, le chiavi non possono essere più immesse come testo senza emettere prima il sottocomando :unab.
Impostazione delle abbreviazioni

Il comando set ha un comportamento simile al comando map! tranne che il comando set sostituisce la stringa per l'abbreviazione solo quando l'abbreviazione si trova in una parola separata. E' possibile utilizzare il comando set dell'editor vi per eseguire quanto riportato di seguito:

Indicatori

Sottocomando -c Esegue il sottocomando dell'editor ex prima dell'inizio della visualizzazione con vi. Il cursore passa alla riga influenzata dall'ultimo sottocomando da eseguire. Quando si immette un operando nullo, come ad esempio in -c' ', l'editor vi posiziona il cursore sulla prima riga del file. L'indicatore -c è incompatibile con quello +. Non specificare i due indicatori contemporaneamente.
-l Avvia l'editor vi in modalità LISP. In questa modalità, l'editor vi crea i rientri appropriati per il codice LISP e i sottocomandi (, ), {, }, [[ e ]] vengono modificati per essere utilizzati correttamente con LISP.
-r[File] Recupera un file dopo un malfunzionamento di sistema o dell'editor vi. Se non si specifica la variabile File, l'editor vi visualizza un elenco di tutti i file salvati.
-R Imposta l'opzione readonly per proteggere il file dalle sovrascritture.
-tTag Modifica il file che contiene la variabile Tag e ubica l'editor vi in tale definizione. Per utilizzare questo indicatore, è necessario creare un database di nomi di funzione e delle relative posizioni utilizzando il comando ctags.
-v Avvia l'editor vi in modalità dettagliata.
-wNumero Imposta la dimensione della finestra predefinita sul valore specificato dalla variabile Numero. Questo indicatore è utile in caso di utilizzo dell'editor vi con una linea a bassa velocità.
-yNumero Sovrascrive l'impostazione del numero massimo di righe 1,048,560 con un valore superiore a 1024. E' necessario richiedere due volte il numero di righe poiché l'editor vi utilizza le righe supplementari per la gestione del buffer.
+[Sottocomando] Esegue il sottocomando dell'editor ex prima dell'inizio della modifica. Se non si specifica la variabile Sottocomando, il cursore viene posizionato sulla prima riga del file. L'indicatore + è incompatibile con quello -c. Non specificare i due indicatori contemporaneamente.

Sintassi dei sottocomandi generica di vi

Utilizzare la seguente sintassi generica per immettere i sottocomandi:

[Buffer_denominato] [Operatore] [Numero] Oggetto

Nota:
Le parentesi quadre specificano le voci facoltative.
[Buffer_denominato] Specifica un'area di memorizzazione testo temporanea.
[Operatore] Specifica il sottocomando o l'azione, fornisce le istruzioni all'editor vi.
[Numero] Specifica l'estensione dell'azione o un'indirizzo di riga come numero intero.
Oggetto Specifica l'elemento su cui agire, come ad esempio un oggetto di testo (un carattere, parola, frase, paragrafo, sezione, stringa di caratteri) o una posizione del testo (una riga, la posizione nella riga corrente, la posizione nello schermo).

Conteggi prima dei sottocomandi

E' possibile inserire un numero davanti a vari sottocomandi. L'editor vi interpreta questo numero in uno dei seguenti modi:

Sottocomandi dell'editor vi

Utilizzare i sottocomandi per eseguire i seguenti tipi di azioni:

Spostamento del cursore

Utilizzare i sottocomandi per spostare il cursore in un file nei seguenti modi:

Spostamento in una riga

Immettere i seguenti sottocomandi in modalità di comando. E' possibile annullare un comando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

Freccia a sinistra o h oppure Ctrl-H Sposta il cursore di un carattere a sinistra.
Freccia giù o j oppure Ctrl-J o Ctrl-N Sposta il cursore di una riga verso il basso (restando nella stessa colonna).
Freccia su o k oppure Ctrl-P Sposta il cursore di una riga verso l'alto (restando nella stessa colonna).
Freccia a destra o l Sposta il cursore di un carattere a destra.
Spostamento in una riga per posizione carattere

Immettere i seguenti sottocomandi in modalità di comando. E' possibile annullare un comando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

^ Sposta il cursore sul primo carattere non vuoto.
0 Sposta il cursore all'inizio della riga.
$ Sposta il cursore alla fine della riga.
fx Sposta il cursore sul carattere x successivo.
Fx Sposta il cursore sull'ultimo carattere x.
tx Sposta il cursore sulla colonna precedente al carattere x successivo.
Tx Sposta il cursore sulla colonna successiva all'ultimo carattere x.
; Ripete l'ultimo sottocomando f, F, t o T.
, Ripete l'ultimo sottocomando f, F, t o T nella direzione opposta.
Numero| Sposta il cursore sulla colonna specificata.
Spostamento sulle parole

Immettere i seguenti sottocomandi in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

w Sposta il cursore sulla parola minuscola successiva.
b Sposta il cursore sulla parola minuscola precedente.
e Sposta il cursore sull'estremità successiva di una parola minuscola.
W Sposta il cursore sulla parola maiuscola successiva.
B Sposta il cursore sulla parola maiuscola precedente.
E Sposta il cursore sull'estremità successiva di una parola maiuscola.
Spostamento per posizione di riga

Immettere i seguenti sottocomandi in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

H Sposta il cursore sulla riga superiore dello schermo.
L Sposta il cursore sull'ultima riga dello schermo.
M Sposta il cursore sulla riga centrale dello schermo.
+ Sposta il cursore sulla riga successiva sul primo carattere non vuoto.
- Sposta il cursore sulla riga precedente sul primo carattere non vuoto.
Invio Sposta il cursore sulla riga successiva sul primo carattere non vuoto.
Spostamento su frasi, paragrafi o sezioni

Immettere i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

( Posiziona il cursore all'inizio della frase precedente o sull'espressione-s precedente se si sta utilizzando la modalità LISP.
) Posiziona il cursore all'inizio della frase successiva o sull'espressione-s successiva se si sta utilizzando la modalità LISP.
{ Posiziona il cursore all'inizio del paragrafo precedente o sull'elenco successivo se si sta utilizzando la modalità LISP.
} Posiziona il cursore all'inizio del paragrafo successivo, nella sezione successiva in modalità C o sull'elenco successivo se si sta utilizzando la modalità LISP.
]] Posizione il cursore sulla sezione successiva o agisce come in modalità LISP.
[[ Posizione il cursore sulla sezione precedente o agisce come in modalità LISP.
Spostamento rivisualizzando lo schermo

Immettere i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

z Rivisualizza lo schermo con la riga corrente nella parte superiore dello schermo.
z- Rivisualizza lo schermo con la riga corrente nella parte inferiore dello schermo.
z. Rivisualizza lo schermo con la riga corrente nella parte centrale dello schermo.
/Modello /z- Rivisualizza lo schermo con la riga che contiene la stringa di caratteri specificata dal parametro modello, visualizzata nella parte inferiore.
Paginazione e scorrimento

Immettere i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

Ctrl-U Scorre di metà schermo verso l'alto
Ctrl-D Scorre di metà schermo verso il basso
Ctrl-F Scorre avanti di un pannello.
Ctrl-B Scorre indietro di un pannello.
Ctrl-E Scorre in basso la finestra di una riga.
Ctrl-Y Scorre in alto la finestra di una riga.
z+ In alto di una pagina.
z^ In basso di una pagina.
Ricerca di modelli

Immettere i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

[Numero ]G Posiziona il cursore sul numero di linea specificato dal parametro Numero o sull'ultima riga se non si specifica il parametro Numero.
/Modello Posiziona il cursore sulla riga successiva che contiene la stringa di caratteri specificata dal parametro Modello.
?Modello Posiziona il cursore sulla riga successiva precedente che contiene la stringa di caratteri specificata dal parametro Modello.
n Ripete l'ultima ricerca del testo specificato dal parametro Modello nella stessa direzione.
N Ripete l'ultima ricerca del testo specificato dal parametro Modello nella direzione opposta.
/Modello /+Numero Posiziona il cursore sul numero di righe specificato che si trova dopo la riga che corrisponde alla stringa di caratteri specificata dal parametro Modello.
?Modello ?-Numero Posiziona il cursore sul numero di righe specificato che si trova prima della riga che corrisponde alla stringa di caratteri specificata dal parametro Modello.
% Trova la parentesi che corrisponde a quella che si trova nella posizione corrente del cursore.

Modifica del testo

I sottocomandi per la modifica consentono di eseguire le seguenti attività:

Contrassegno di una posizione specifica in un file e ritorno

Immettere i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

" Sposta il cursore sulla posizione precedente alla riga corrente.
" Sposta il cursore all'inizio della riga che contiene la posizione precedente della riga corrente.
mx Contrassegna la posizione corrente con la lettera specificata dal parametro x.
`x Sposta il cursore sul contrassegno specificato mediante il parametro x.
'x Sposta il cursore all'inizio della riga che contiene il contrassegno specificato mediante il parametro x.
Aggiunta di testo ad un file (modalità di immissione testo)

Immettere i seguenti sottocomandi in modalità di comando per passare alla modalità di immissione testo dell'editor vi. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

a Testo

Inserisce il testo specificato dal parametro Testo dopo il cursore. Terminare la modalità di immissione testo premendo il tasto Esc.

A Testo

Aggiunge il testo specificato dal parametro Testo a fine riga. Terminare la modalità di immissione testo premendo il tasto Esc.

i Testo

Inserisce il testo specificato dal parametro Testo prima del cursore. Terminare la modalità di immissione testo premendo il tasto Esc.

I Testo

Inserisce il testo specificato dal parametro Testo prima del primo carattere non vuoto nella riga. Terminare la modalità di immissione testo premendo il tasto Esc.

o

Aggiunge una riga vuota prima della riga corrente. Terminare la modalità di immissione testo premendo il tasto Esc.

O

Aggiunge una riga vuota sopra la riga corrente. Terminare la modalità di immissione testo premendo il tasto Esc.
Modifica del testo durante la modalità di immissione

Utilizzare i seguenti sottocomandi solo in modalità di immissione testo. Questi comandi hanno funzioni diverse in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

Ctrl-D

Ritorna all'arresto del rientro automatico precedente.
^ Ctrl-D Termina il rientro automatico solo per la riga corrente.
0Ctrl-D Sposta il cursore indietro sul margine sinistro.
Esc Termina l'inserimento e restituisce lo stato del comando.
Ctrl-H Cancella l'ultimo carattere.
Ctrl-Q Immette un qualsiasi carattere se xon è disabilitata.
Ctrl-V Immette un qualsiasi carattere.
Ctrl-W Cancella l'ultima parola minuscola.
\ Racchiude tra virgolette i caratteri erase e kill.
Ctrl-? Interrompe e termina l'inserimento o la sequenza di tasti Ctrl-D.
Modifica del testo dalla modalità di comando

Utilizzare i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

C

Modifica il resto della riga (uguale a c$).

cc

Modifica una riga.
cw Modifica una parola.
cwTesto Modifica una parola con il testo specificato dal parametro Testo.
D Elimina il resto della riga (uguale a d$).
gg Elimina una riga.
dw Elimina una parola.
J Unisce le righe.
rx Sostituisce il carattere corrente con quello specificato da x.

R Testo

Sovrascrive i caratteri con il testo specificato dal parametro Testo.

s

Sostituisce i caratteri (uguale a cl).

S

Sostituisce le righe (uguale a cc).
u Annulla la modifica precedente.
x Elimina un carattere nella posizione del cursore.
X Elimina un carattere prima del cursore (uguale a dh).
<< Sposta una riga a sinistra.
<L Sposta tutte le righe dalla posizione del cursore alla fine dello schermo a sinistra.
>> Sposta una riga a sinistra.
>L Sposta tutte le righe dalla posizione del cursore alla fine dello schermo a destra.
~ Modifica la lettera dalla posizione del cursore da maiuscolo a minuscolo o viceversa.
! Rientri per LISP.
Copia e spostamento del testo

Utilizzare i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

p Reinserisce il testo dal buffer di annullamento dopo il cursore.
P Reinserisce il testo dal buffer di annullamento prima del cursore.
"xp Reinserisce il testo dal buffer x.
"xd Elimina il testo dal cursore x.
y Inserisce l'oggetto seguente (ad esempio w per word) nel buffer di annullamento.
"xy Inserisce l'oggetto che segue nel buffer x, in cui x è una qualsiasi lettera.
Y Inserisce la riga nel buffer di annullamento.
Ripristino e ripetizione delle modifiche

Utilizzare i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

u Annulla l'ultima modifica.

Nota:
dopo un annullamento, il cursore si sposta sul primo carattere non vuoto nella riga correntemente aggiornata.
U Ripristina la riga corrente se il cursore non è stato spostato dalla riga dall'ultima modifica.
. Ripete l'ultima modifica o incrementa il comando "np.

Note:
  1. Questo sottocomando ripeterà l'ultima modifica, incluso un annullamento. Pertanto, dopo un annullamento, la ripetizione esegue un annullamento invece di ripetere l'ultima modifica.
  2. Questo sottocomando non è indicato per l'utilizzo con una macro. Immettere @@ (due simboli di chiocciola) per ripetere una macro.
"n p Richiama l'ultima eliminazione con classificazione n di una riga completa o di un blocco di linee.

Gestione dei file

I sottocomandi per la gestione dei file consentono di eseguire le attività evidenziate nelle seguenti sezioni:

Salvataggio delle modifiche in un file

Utilizzare i seguenti sottocomandi in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

:w Scrive il contenuto del buffer di modifica nel file originale. Se si sta utilizzando questo sottocomando in un editor ex, non è necessario digitare il simbolo : (due punti).
:w File Scrive il contenuto del buffer di modifica nel file specificato dal parametro File. Se si sta utilizzando questo sottocomando in un editor ex, non è necessario digitare il simbolo : (due punti).
:w! File Sovrascrive il file specificato dal parametro File con il contenuto del buffer di modifica. Se si sta utilizzando questo sottocomando in un editor ex, non è necessario digitare il simbolo : (due punti).
Modifica di un secondo file

Immettere i seguenti sottocomandi in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

:e File Modifica il file specificato. Se si sta utilizzando questo sottocomando dall'editor ex, non è necessario digitare il simbolo : (due punti).
:e! Modifica di nuovo il file corrente ed elimina tutte le modifiche.
:e + File Modifica il file specificato iniziando dalla fine.
:e + Numero file Modifica il file specificato iniziando dal numero di riga specificato.
:e # Modifica il file alternativo. Il file alternativo è di solito il nome file precedente all'accesso di un altro file con un comando :e. Tuttavia, se vi sono modifiche in attesa nel file corrente quando viene richiamato un nuovo file, il nuovo file diventa il file alternativo. Questo sottocomando è lo stesso del sottocomando Ctrl-A.
:r File Legge il file nel buffer di modifica aggiungendo le nuove righe sotto quella corrente. Se si sta utilizzando questo sottocomando dall'editor ex, non è necessario digitare il simbolo : (due punti).
:r !Comando Esegue il comando specificato e ubica la relativa emissione nel file aggiungendo le nuove righe sotto la posizione corrente del cursore.
:ta Tag Modifica un file che contiene la tag Tag iniziando dalla posizione della tag. Per utilizzare questo sottocomando, è necessario creare un database di nomi di funzione e delle relative posizioni utilizzando il comando ctags. Se si sta utilizzando questo sottocomando dall'editor ex, non è necessario digitare il simbolo : (due punti).
Ctrl-] Modifica un file che contiene la tag associata alla parola corrente iniziando dall'ubicazione della tag. Per utilizzare questo sottocomando, è necessario creare un database di nomi di funzione e delle relative posizioni utilizzando il comando ctags. Ctrl-T modifica un file nella posizione di modifica da cui era stato emesso il sottocomando Ctrl-] precedente. Se erano stati emessi più sottocomandi Ctrl-], è possibile utilizzare più sottocomandi Ctrl-T per ritornare alle posizioni di modifica precedenti da cui erano stati emessi i sottocomandi Ctrl-].
Ctrl-A Modifica il file alternativo. Il file alternativo è di solito il nome del file corrente precedente. Tuttavia, se vi sono modifiche in attesa nel file corrente quando viene richiamato un nuovo file, il nuovo file diventa il file alternativo. Questo sottocomando è lo stesso del sottocomando :e #.
Modifica di un elenco di file

Immettere i seguenti sottocomandi in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

:n Modifica il file successivo nell'elenco immesso nella riga comandi. Se si sta utilizzando questo sottocomando dall'editor ex, non è necessario digitare il simbolo : (due punti).
:n File Specifica un nuovo elenco di file da modificare. Se si sta utilizzando questo sottocomando dall'editor ex, non è necessario digitare il simbolo : (due punti).
Ricerca delle informazioni file

Immettere il seguente sottocomando in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

Ctrl-G Mostra il nome file corrente, il numero di riga corrente, il numero di righe nel file e la percentuale di volte in cui è stato ubicato il cursore nel file.

Altre azioni

L'editor vi fornisce i sottocomandi descritti nelle seguenti sezioni:

Regolazione dello schermo

Immettere i seguenti sottocomandi in modalità di comando. E' possibile annullare un sottocomando non completo premendo il tasto Esc. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

Ctrl-L Cancella e rivisualizza lo schermo.
Ctrl-R Rivisualizza lo schermo ed elimina le righe vuote contrassegnate da @ (chiocciola).
zNumero Visualizza la finestra con una lunghezza uguale al numero di righe specificato.
Immissione dei comandi di shell

I seguenti sottocomandi consentono di eseguire un comando nell'editor vi. Immettere questi sottocomandi in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

:sh Avvia lo shell per consentire l'esecuzione di più comandi. E' possibile ritornare all'editor vi premendo la sequenza di tasti Ctrl-D. Se si sta utilizzando questo sottocomando nell'editor ex, non è necessario digitare il simbolo : (due punti).
:!Comando Esegue il comando specificato e ritorna all'editor vi. Se si sta utilizzando questo sottocomando nell'editor ex, non è necessario digitare il simbolo : (due punti).

Nota:
i caratteri speciali # (file alternativo), % (file corrente), e ! (comando precedente) vengono espansi quando seguono un sottocomando :! . Per impedire l'espansione di uno di questi caratteri, utilizzare \ (barra retroversa).
:!! Ripete l'ultimo sottocomando :!Comando.
Numero!!Comando Esegue il comando specificato e sostituisce le righe specificate da Numero con l'emissione del comando. Se non si specifica un numero, il valore predefinito è 1. Se il comando prevede un'immissione standard, le righe specificate vengono utilizzate come immissione.
!Oggetto Comando Esegue il comando specificato e sostituisce l'oggetto specificato dal parametro Oggetto con l'emissione del comando. Se il comando prevede un'immissione standard, l'oggetto specificato viene utilizzato come immissione.
Interruzione e chiusura dell'editor vi

Immettere i seguenti sottocomandi in modalità di comando. Se sono necessarie informazioni sul formato dei sottocomandi vi, consultare "Sintassi dei sottocomandi generica di vi".

Q Avvia l'editor ex in modalità di comando.
ZZ Chiude l'editor vi e salva le modifiche.
:q Chiude l'editor vi. Se è stato modificato il contenuto del buffer di modifica, l'editor vi visualizza un messaggio di avvertenza e non si chiude. Se si sta utilizzando questo sottocomando dall'editor ex, non è necessario digitare il simbolo : (due punti).
:q! Chiude l'editor vi, cancellando il buffer di modifica. Se si sta utilizzando questo sottocomando dall'editor ex, non è necessario digitare il simbolo : (due punti).
Esc Termina l'immissione del testo o termina un sottocomando incompleto.
Ctrl-? Interrompe un sottocomando.

Stato di uscita

Vengono restituiti i seguenti valori di uscita:

0 Indica la riuscita del completamento.
>0 Indica che si è verificato un errore.

File di immissione

I file di immissione devono essere file di testo o file simili tranne che per un'ultima riga incompleta che ha una lunghezza non superiore a 8191 byte e che non contiene caratteri nulli.

I file .exrc devono essere file di testo formati da comandi ex.

Per impostazione predefinita, l'editor vi legge le righe dai file da modificare senza interpretare nessuna di tali righe come parti di un comando dell'editor vi.

Informazioni correlate

Il comando sed.


Invia feedback |  Valuta questa pagina