Capitolo 9. La modalità di inserimento Vi

Erlend Hamberg

Traduzione della documentazione: Federico Zenith

Modalità di inserimento Vi

Lo scopo della modalità Vi non è di essere un sostituto completo di Vim e supportare tutte le sue funzionalità. Il suo scopo è rendere disponibile la modifica del testo «alla Vim», e le abitudini ad essa legate, ai programmi che usano l'editor di testo KatePart come editor interno.

La modalità Vi punta ad integrarsi bene con il programma e devia dal comportamento di Vim quando ciò ha senso. Per esempio, :w aprirà una finestra di salvataggio nella modalità Vi di KatePart.

Per abilitare la modalità di inserimento Vi per tutte le nuove viste, vai a ImpostazioniConfigura KatePart+ModificaModalità di inserimento Vi. Da questa scheda puoi impostare le opzioni per la modalità di inserimento Vi, e modificarne la mappatura della tastiera. La modalità di inserimento Vi può essere attivata con l'impostazione Modalità di inserimento Vi nel menu Modifica (la scorciatoia predefinita è Meta+Ctrl+V, dove Meta è normalmente il tasto Windows).

Nota

Molti comandi da tastiera della modalità Vi sono diversi con le maiuscole, al contrario della maggior parte delle scorciatoie da tastiera di KDE. Ciò vuol dire che y e Y sono due comandi diversi. Per inserire il comando y (copia), assicurati che Bloc Maiusc sia disattivato e premi Y. Per inserire il comando Y (copia fino alla fine della riga), Shift+Y.

Ciò non vale per i comandi che usano il tasto Ctrl, che possono essere inseriti indipendentemente dalla modalità di Bloc Maiusc e senza premere Shift. Tuttavia, alcuni comandi richiedono l'uso di combinazioni di un tasto Ctrl con un altro tasto con versione maiuscola. Per esempio, per inserire «Ctrl+W, h» (passa alla vista divisa a destra), assicurati che Bloc Maiusc sia disattivato, premi Ctrl+W, rilascia, e quindi premi H.

Incompatibilità con Vim

Ci sono solo alcune poche funzionalità della modalità Vi di KatePart che non sono compatibili con Vim (non contando quelle mancanti). Sono elencate sotto con le rispettive motivazioni.

  • KatePart: U e Ctrl+R sono il comando rifai.

    Vim: Ctrl+R è il comando rifai normale, U è usato per annullare tutte le ultime modifiche su una riga.

    Il motivo di far funzionare U come azione di rifai nella modalità Vi di KatePart è che la scorciatoia Ctrl+R è normalmente già presa dalla funzione di sostituzione di KatePart (ricerca e sostituzione). Normalmente, la modalità Vi non si sovrapporrà alle scorciatoie di KatePart (questo si può modificare in ImpostazioniConfigura KatePart+ModificaModalità di inserimento Vi), quindi un'azione di rifai va resa disponibile anche con una «normale» pressione di un tasto. Inoltre, il comportamento del comando U in Vim non si adatta bene al sistema di annullamento interno di KatePart, quindi sarebbe comunque difficile da supportare.

  • KatePart: print mostra la finestra di Stampa.

    Vim: print stampa le righe dell'intervallo dato, come nel suo antenato ed.

    I comandi come :print sono disponibili non solo nella modalità Vi, ma anche per gli utenti del KatePart «normale»; quindi il comando :print apre la finestra di stampa, seguendo il principio di minima sorpresa invece di imitare il comportamento di Vim.

  • KatePart: Y copia fino alla fine della riga.

    Vim: Y copia tutta la riga, come yy.

    Il comportamento di Vi per il comando Y è in pratica un errore. Sia per il comando di modifica che di cancellazione, cc/dd eseguiranno la loro azione sulla riga attuale, mentre C/D funzioneranno dalla colonna del cursore fino alla fine della riga. Tuttavia, sia yy che Y copiano la riga attuale. Nella modalità Vi di KatePart, Y copierà fino alla fine della riga. Ciò è descritto come «più logico» nella documentazione di Vim.

  • KatePart: O e o aprono [tot] nuove righe e mettono in modalità di inserimento

    Vim: O e o aprono una nuova riga e inseriscono del testo [tot] volte all'uscita dalla modalità di inserimento.

    Questo è motivato essenzialmente dalla confusione di molte persone da parte di questo comportamento su un canale IRC su Vim (#vim su freenode).

Cambiare modalità

  • La modalità normale permette di inserire comandi per navigare o modificare un documento, ed è quella predefinita. Puoi tornarci da qualsiasi altra modalità premendo Esc.

  • La modalità visuale permette di evidenziare del testo in un documento. La maggior parte dei comandi sono validi anche in questa modalità. Puoi attivarla premendo v per selezionare caratteri o V per selezionare righe.

  • La modalità di inserimento permette di modificare il documento direttamente. Puoi attivarla premendo i o uno dei diversi comandi elencati sotto.

  • La modalità di comando invoca la riga di comando di KatePart, permettendo di eseguire molti comandi disponibili nelle implementazioni di Vi oltre ad alcuni specifici di KatePart. Per maggiori informazioni, vedi la sezione chiamata «La riga di comando per il componente dell'editor». Per usarla, premi :, inserisci il comando e premi Invio.

Integrazione con le funzionalità di Kate

  • La modalità visuale è attivata automaticamente quando si seleziona del testo col mouse. È attivata anche quando si usano funzioni di Kate che selezionano del testo, come Seleziona tutto (dal menu o con Ctrl+A).

  • Gli indicatori di Vi e i segnalibri di Kate sono integrati. Quando si crea un indicatore in modalità Vi, viene creato un segnalibro di Kate corrispondente e appare nel menu Segnalibri. Allo stesso modo, quando si crea un segnalibro di Kate, viene anche creato un indicatore di Vi alla colonna 0.

Comandi supportati nelle modalità normale e visuale

a

Entra nella modalità di inserimento; aggiungi dopo il cursore

A

Entra nella modalità di inserimento; aggiungi dopo la riga

i

Entra nella modalità di inserimento; aggiungi prima del cursore

Inserisci

Entra nella modalità di inserimento; aggiungi prima del cursore

I

Entra nella modalità di inserimento; aggiungi prima del primo carattere non vuoto sulla riga

gi

Entra nella modalità di inserimento; aggiungi prima del posto dove si è lasciata l'ultima modalità di inserimento

v

Entra nella modalità visuale; seleziona caratteri

V

Entra nella modalità visuale; seleziona righe

Ctrl+v

Entra nella modalità visuale; seleziona blocchi

gb

Entra nella modalità visuale; riseleziona l'ultima selezione

o

Apre una nuova riga sotto l'attuale

O

Apre una nuova riga sopra l'attuale

J

Unisci righe

c

Modifica: fai seguire un movimento per cancellare e entrare nella modalità di inserimento

C

Modifica fino alla fine della riga: cancella fino alla fine della riga ed entra in modalità di inserimento

cc

Modifica riga: cancella la riga e entra nella modalità di inserimento

s

Carattere sostitutivo

S

Riga sostitutiva

dd

Cancella riga

d

Fai seguire un movimento per cancellare

D

Cancella fino alla fine della riga

x

Cancella il carattere alla destra del cursore

Elimina

Cancella il carattere alla destra del cursore

X

Cancella il carattere alla sinistra del cursore

gu

Fai seguire un movimento per mettere in minuscolo

guu

Metti la riga attuale in minuscolo

gU

Fai seguire un movimento per mettere in maiuscolo

gUU

Metti la riga attuale in maiuscolo

y

Fai seguire un movimento per copiare

yy

Copia riga

Y

Copia riga

p

Incolla dopo il cursore

P

Incolla prima del cursore

]p

Incolla dopo il cursore rientrato

[p

Incolla prima del cursore rientrato

r

Fai seguire un carattere per sostituire il carattere dopo il cursore

R

Entra nella modalità di sostituzione

:

Entra nella modalità di comando

/

Cerca

u

Annulla

Ctrl+R

Rifai

U

Rifai

m

Imposta indicatore (può essere usato in seguito dai movimenti)

n

Trova successivo

N

Trova precedente

>>

Fai rientrare la riga

<<

Riduci il rientro della riga

>

Fai rientrare le righe

<

Riduci il rientro delle righe

Ctrl+F

Pagina giù

Ctrl+B

Pagina su

ga

Stampa il valore ASCII del carattere

.

Ripeti l'ultima modifica

==

Allinea la riga

=

Allinea le righe

~

Cambia tra versione maiuscola o minuscola del carattere attuale

Ctrl+S

Dividi la vista orizzontalmente

Ctrl+V

Dividi la vista verticalmente

Ctrl+W, w

Passa alla prossima finestra divisa

Ctrl+W, h

Ctrl+W

Passa alla finestra divisa a sinistra

Ctrl+W, l

Ctrl+W

Passa alla finestra divisa a destra

Ctrl+W, k

Ctrl+W

Passa alla finestra divisa sopra

Ctrl+W, j

Ctrl+W

Passa alla finestra divisa sotto

Movimenti supportati

Questi possono essere usati per spostarsi in un documento nelle modalità normale o visuale, o in congiunzione con uno dei comandi sopracitati. Possono essere preceduti da un conto, che indica quanti movimenti effettuare.

h

Sinistra

Sinistra

Backspace

Sinistra

j

Giù

Giù

k

Su

Su

l

Destra

Destra

Spazio

Destra

$

Fine riga

Fine

Fine riga

0

Primo carattere della riga (colonna 0)

Home

Primo carattere della riga

^

Primo carattere non vuoto della riga

f

Fai seguire un carattere da spostare alla destra del cursore

F

Fai seguire un carattere da spostare alla sinistra del cursore

t

Fai seguire un carattere da spostare alla destra del cursore, mettendo il cursore sul carattere precedente

T

Fai seguire un carattere da spostare alla sinistra del cursore, mettendo il cursore sul carattere precedente

gg

Prima riga

G

Ultima riga

w

Parola successiva

W

Parola successiva separata da spazi

b

Parola precedente

B

Parola precedente separata da spazi

e

Fine della parola

E

Fine della parola separata da spazi

ge

Fine della parola precedente

gE

Fine della parola precedente separata da spazi

|

Fai seguire il numero della colonna a cui spostarsi

%

Fai seguire un elemento a cui spostarsi

`

Indicatore

Primo carattere non di spaziatura della riga su cui è l'indicatore

[[

Quadra aperta precedente

]]

Quadra aperta successiva

[]

Quadra chiusa precedente

][

Quadra chiusa successiva

Ctrl+I

Salta in avanti alla posizione successiva

Ctrl+O

Salta indietro alla posizione precedente

H

Vai alla prima riga della schermata

M

Vai al centro della schermata

L

Vai all'ultima riga della schermata

%percentuale

Vai alla percentuale specificata del documento

gk

Sali di una riga visualmente (quando si usa il ritorno a capo dinamico)

gj

Scendi di una riga visualmente (quando si usa il ritorno a capo dinamico)

Ctrl+

Sposta una parola a sinistra

Ctrl+

Sposta una parola a destra

Oggetti di testo supportati

Questi si possono usare per selezionare certe porzioni di un documento.

iw

Parola interna: parola con spazi inclusi

aw

Una parola: parola senza spazi

i"

Dalle virgolette doppie (") precedenti alle successive, virgolette incluse

a”

Dalle virgolette doppie (") precedenti alle successive, virgolette escluse

i'

Dalle virgolette singole (') precedenti alle successive, virgolette incluse

a'

Dalle virgolette singole (') precedenti alle successive, virgolette escluse

i(

Dalla parentesi aperta precedente [(] alla chiusa successiva [)], parentesi incluse

a(

Dalla parentesi aperta precedente [(] alla chiusa successiva [)], parentesi escluse

i[

Dalla parentesi quadra aperta precedente ([) alla chiusa successiva (]), parentesi quadre incluse

a[

Dalla parentesi quadra aperta precedente ([) alla chiusa successiva (]), parentesi quadre escluse

i{

Dalla parentesi graffa aperta precedente ({) alla chiusa successiva (}), parentesi graffe incluse

a{

Dalla parentesi graffa aperta precedente ({) alla chiusa successiva (}), parentesi graffe escluse

i<

Dalla parentesi angolata aperta precedente (<) alla chiusa successiva (>), parentesi angolate incluse

a<

Dalla parentesi angolata aperta precedente (<) alla chiusa successiva (>), parentesi angolate escluse

i`

Dall'accento grave precedente (`) al successivo, accenti inclusi

a`

Dall'accento grave precedente (`) al successivo, accenti esclusi

Comandi supportati nella modalità di inserimento

Ctrl+D

Riduci rientro

Ctrl+T

Fai rientrare

Ctrl+E

Inserisci da sotto

Ctrl+Y

Elimina parola

Ctrl+W

Elimina parola

Ctrl+U

Cancella riga

Ctrl+J

Nuova riga

Ctrl+H

Elimina carattere all'indietro

Ctrl+Home

Vai al primo carattere del documento

Ctrl+R n

Inserisce i contenuti del registro n

Ctrl+O, comando

Entra nella modalità normale per un solo comando

Ctrl+A

Incrementa il numero attualmente selezionato

Ctrl+X

Decrementa il numero attualmente selezionato

L'oggetto di testo tra virgole

Questo oggetto non è presente in Vim. L'oggetto di testo tra virgole facilita la modifica di elenchi di parametri in linguaggi simili al C e in altri elenchi separati da virgole. È sostanzialmente l'area tra due virgole o tra una virgola e una parentesi. In questa riga mostrata nell'illustrazione, sono evidenziati i tre intervalli coperti da questo oggetto di testo.

Un esempio di oggetto di testo tra virgole

Intervalli degli oggetti di testo tra virgole. Se il cursore è per esempio su arg2, premere ci («cambia tra virgole») eliminerebbe double arg2 e posizionerebbe il cursore tra le due virgole in modalità di inserimento. Un modo molto comodo per cambiare i parametri di una funzione.

Funzionalità mancanti

Come già menzionato, l'obbiettivo della modalità Vi di KatePart non è supportare il 100% delle funzionalità di Vim.