Capítol 9. El mode d'entrada del Vi

Hamberg, Erlend

Traductor: Antoni Bella

Mode d'entrada del Vi

L'objectiu del mode VI no és substituir-lo completament per Vim, sí que dona suport a totes les característiques de Vim. El seu objectiu és fer que la «forma Vim» d'editar el text -i els hàbits apresos a Vim- estiguin disponibles per als programes utilitzant l'editor de text KatePart com al seu editor intern.

El mode VI té com a finalitat integrar-se molt bé amb el programa i desviar-se del comportament de Vim, on prengui sentit. Per exemple, :w obrirà un diàleg desa en el mode VI de KatePart.

Per a habilitar el mode d'entrada VI per a totes les vistes, aneu a ArranjamentConfigura KatePart...+EdicióMode d'entrada del VI. En aquesta pestanya podeu configurar les opcions per al mode d'entrada VI i definir i modificar l'assignació de tecles en aquest mode. El mode d'entrada VI també es pot alternar amb la configuració del Mode d'entrada del VI al menú Edició. (La drecera de teclat predeterminada és Meta+Ctrl+V -a on Meta usualment serà la tecla Windows-).

Nota

En el Mode Vi moltes ordres de teclat distingeixen les majúscules i minúscules, a diferència de la majoria de les dreceres de teclat del KDE. Això vol dir que i i I són ordres diferents. Per a introduir l'ordre y (copia), assegureu-vos que Bloq Maj està inhabilitat i premeu Y. Per a introduir l'ordre Y (copiarà al final de la línia), Maj+Y.

Això no s'aplica a les ordres que utilitzen la tecla Ctrl, ja que es poden introduir independentment del mode Bloq Maj i sense necessitat de prémer Maj. No obstant això, algunes ordres requereixen l'ús de la tecla Ctrl seguida d'una altra tecla que distingeix entre majúscules i minúscules. Per exemple, per a introduir «Ctrl+W, h» (canviar a la vista dividida de la dreta) assegureu-vos que Bloq Maj està inhabilitada, premeu Ctrl+W, deixeu anar, i després premeu H.

Incompatibilitats amb Vim

Hi ha només unes poques característiques del mode VI de KatePart que són incompatibles amb Vim (no comptant les coses que falten). S'enumeren a continuació juntament amb les raons respectives.

  • KatePart: U i Ctrl+R són de refer.

    Vim: Ctrl+R és refer normal, U s'utilitza per a desfer tots els canvis més recents en una línia.

    La raó de tenir U actua com refer en el mode VI de KatePart la drecera Ctrl+R de manera predeterminada pren la funció de substituir de KatePart (cerca i substitueix). De manera predeterminada, el mode VI no substitueix les dreceres de KatePart (això es pot configurar en ArranjamentConfigura KatePart...+EdicióMode d'entrada del Vi), per tant, una acció de refer necessita estar disponible com a tecla «normal». A més, el comportament de l'ordre U en Vim no es correlaciona bé amb el sistema intern de desfer de KatePart, de manera que no seria trivial donar-ne suport.

  • KatePart: print mostra el diàleg Impressió.

    Vim: print mostra les línies de l'interval donat igual que el seu predecessor, ed.

    Ordres com :print estan disponibles no només en el mode de VI, però també per als usuaris que utilitzen «regularment» KatePart -per tant, l'ordre :print obre el diàleg d'impressió- seguint el principi de la menor sorpresa en lloc d'imitar el comportament de Vim.

  • KatePart: Y copia al final de la línia.

    Vim: Y copia tota la línia, igual que yy.

    El comportament del VI per a l'ordre Y és en la pràctica un error. Per a ambdues ordres canvia i suprimeix, cc/dd farà la seva acció en la línia actual i C/D treballarà a partir de la columna del cursor fins al final de la línia. No obstant això, tant yy com Y copien la línia actual. En mode VI de KatePart Y copiarà al final de la línia. Això es descriu «més lògicament» en la documentació de Vim.

  • KatePart: O i o obre [compte] noves línies i posa en el mode d'inserció.

    Vim: O i O obre una línia nova i insereix text [compte] vegades deixant el mode d'inserció.

    Això es fa principalment a conseqüència de trobar que molta gent es confon per aquest comportament en un canal d'IRC sobre vim (#vim a Libera Chat).

Alternar entre els modes

  • Mode normal us permet introduir ordres per a navegar o editar un document, i és el mode predeterminat. Podeu tornar-hi des de qualsevol altra mode prement Esc.

  • Mode visual us permet ressaltar text en un document. La majoria de les ordres del mode normal també són vàlides en aquest mode. Podeu introduir-les prement v per a seleccionar caràcters o V per a seleccionar línies.

  • Mode d'inserció us permet editar directament el document. Podeu introduir prement i o una de les diverses altres ordres enumerades a continuació.

  • El mode d'ordre invoca la línia d'ordres de KatePart, la qual us permetrà executar moltes ordres disponibles en les implementacions de Vi, així com algunes específiques per a KatePart. Per a més informació sobre aquestes ordres, vegeu «El component de la línia d'ordres de l'editor». Per a utilitzar-lo, premeu :, introduïu l'ordre, i premeu Retorn.

Integració amb les característiques del Kate

  • Al mode visual si entra automàticament en seleccionar text amb el ratolí. També si entra utilitzant funcions del Kate que seleccionen text, com Selecciona-ho tot (sigui des del menú o mitjançant Ctrl+A).

  • Les marques de Vi i els punts del Kate estan integrats. Quan es crea una marca en el mode de Vi, es crea un punt del Kate corresponent i apareixerà al menú Punts. Per contra, quan es crea un punt del Kate, també es crea marca de Vi corresponent a la columna 0.

Ordres suportades en el mode normal/visual

a

Entra en el mode d'inserció, afegeix després del cursor

A

Entra en el mode d'inserció, afegeix després de la línia

i

Entra en el mode d'inserció, insereix abans del cursor

Insert

Entra en el mode d'inserció, insereix abans del cursor

I

Entra en el mode d'inserció, insereix abans del primer caràcter no en blanc a la línia

gi

Entra en el mode d'inserció, insereix abans de la ubicació, on el va deixar el darrer mode d'inserció

v

Entra en el mode visual, selecciona caràcters

V

Entra en el mode visual, selecciona línies

Ctrl+v

Entra en el mode visual, selecciona blocs

gb

Entra en el mode visual, torna a seleccionar l'última selecció

o

Obre una línia nova sota la línia actual

O

Obre una línia nova sobre la línia actual

J

Uneix línies

c

Canvi: Segueix un moviment per a suprimir i entrar en el mode d'inserció

C

Canvi al final de la línia: Suprimeix al final de la línia i entrar en el mode d'inserció

cc

Canvi de línia: Suprimeix la línia i entra en el mode d'inserció

s

Substitueix caràcter

S

Substitueix la línia

dd

Suprimeix la línia

d

Segueix un moviment per a suprimir

D

Suprimeix fins al final de la línia

x

Suprimeix el caràcter a la dreta del cursor

Supr

Suprimeix el caràcter a la dreta del cursor

X

Suprimeix el caràcter a l'esquerra del cursor

gu

Segueix amb un moviment per a fer minúscules

guu

Torna a minúscules la línia actual

gU

Segueix amb un moviment per a fer majúscules

gUU

Torna a majúscules la línia actual

y

Segueix un moviment per a «tirar» (copia)

yy

Tira (copia) la línia

Y

Tira (copia) la línia

p

Enganxa després del cursor

P

Enganxa abans del cursor

]p

Enganxa després del sagnat del cursor

[p

Enganxa abans del sagnat del cursor

r

Segueix amb un caràcter a substituir el caràcter després del cursor

R

Entra en el mode substitució

:

Entra en el mode d'ordres

/

Cerca

u

Desfés

Ctrl+R

Refés

U

Refés

m

Estableix la marca (després es pot utilitzar per als moviments)

n

Cerca la següent

N

Cerca l'anterior

>>

Línia amb sagnat

<<

Línia sense sagnar

>

Línies amb sagnat

<

Línies sense sagnar

Ctrl+F

Avança pàgina

Ctrl+B

Retrocedeix pàgina

ga

Imprimeix el valor ASCII del caràcter

.

Repeteix l'últim canvi

==

commandAlignLine

=

commandAlignLines

~

Canvia la caixa del caràcter actual

Ctrl+S

Divideix horitzontalment la vista actual

Ctrl+V

Divideix verticalment la vista actual

Ctrl+W, w

Canvia a la següent divisió a la finestra

Ctrl+W, h

Ctrl+W Fletxa esquerra

Va a la divisió esquerra de la finestra

Ctrl+W, l

Ctrl+W Fletxa dreta

Va a la divisió dreta de la finestra

Ctrl+W, k

Ctrl+W Fletxa amunt

Va a la divisió de sobre a la finestra

Ctrl+W, j

Ctrl+W Fletxa avall

Va a la divisió de sota a la finestra

Moviments suportats

Aquests es poden utilitzar per a moure-us per un document en el mode normal o visual, o en combinació amb una de les ordres anteriors. Poden anar precedits d'un compte, el qual indicarà quants moviments són apropiats de fer.

h

Esquerra

Fletxa esquerra

Esquerra

Retrocés

Esquerra

j

Avall

Fletxa avall

Avall

k

Amunt

Fletxa amunt

Amunt

l

Dreta

Fletxa dreta

Dreta

Espai

Dreta

$

Final de línia

Fi

Final de línia

0

El primer caràcter de la línia (Columna 0)

Inici

El primer caràcter de la línia

^

Primer caràcter no en blanc de la línia

f

Segueix el caràcter per a anar a la dreta del cursor

F

Segueix el caràcter per a anar a l'esquerra del cursor

t

Segueix el caràcter per a anar a la dreta del cursor, situa el cursor sobre el caràcter abans que

T

Segueix el caràcter per a anar a l'esquerra del cursor, situa el cursor sobre el caràcter abans que

gg

Primera línia

G

Última línia

w

Paraula següent

W

Paraula següent separada per un espai en blanc

b

La paraula anterior

B

La paraula anterior separada per un espai en blanc

e

Final de la paraula

E

Final de la paraula separada per un espai en blanc

ge

Final de la paraula anterior

gE

Final de la paraula anterior separada per un espai en blanc

|

Segueix un número de columna per a anar a la columna

%

Segueix un element per a anar a aquest element

`

Marca

Primer caràcter d'espai no en blanc de la línia la marca està en

[[

Claudàtor d'obertura anterior

]]

Claudàtor d'obertura següent

[]

Claudàtor de tancament anterior

][

Claudàtor de tancament següent

Ctrl+I

Va cap a la ubicació següent

Ctrl+O

Va cap a la ubicació anterior

H

Va a la primera línia de la pantalla

M

Va a la línia del mig de la pantalla

L

Va a l'última línia de la pantalla

%percentatge

Va al percentatge especificat del document

gk

Va cap a dalt una línia visual (quan s'usa l'ajust de línia dinàmic).

gj

Va cap avall una línia visual (quan s'usa l'ajust de línia dinàmic).

Ctrl+Fletxa esquerra

Mou una paraula a l'esquerra

Ctrl+Fletxa dreta

Mou una paraula a la dreta

Objectes de text suportats

Aquests es poden utilitzar per a seleccionar certes parts d'un document.

iw

Paraula interior: Paraula incloent-hi l'espai en blanc

aw

Una paraula: Paraula excloent l'espai en blanc

i"

Cometes dobles (") anteriors per a les properes cometes dobles, incloses les marques de cometes

a”

Cometes dobles (") anteriors per a les properes cometes dobles, excloses les marques de cometes

i'

Cometes simples (') anteriors per a les properes cometes simples, incloses les marques de cometes

a'

Cometes simples (') anteriors per a les properes cometes simples, excloses les marques de cometes

i(

Parèntesi d'obertura anterior [(] al següent parèntesi de tancament [)], incloent-hi els parèntesis

a(

Parèntesi d'obertura anterior [(] al següent parèntesi de tancament [)], excloent els parèntesis

i[

Claudàtor d'obertura anterior ([) al següent claudàtor de tancament (]), incloent-hi els claudàtors

a[

Claudàtor d'obertura anterior ([) al claudàtor de tancament següent (]), excloent els claudàtors

i{

Clau d'obertura anterior ({) a la clau de tancament següent (}), incloent-hi les claus

a{

Clau d'obertura anterior ({) a la clau de tancament següent (}), excloent les claus

i<

Clau angular d'obertura anterior (<) a la clau angular de tancament següent (>), incloent-hi les claus

a<

Clau angular d'obertura anterior (<) a la clau angular de tancament següent (>), excloent les claus

i`

Accent greu anterior (`) a l'accent greu següent, inclosos els accents greus

a`

Accent greu anterior (`) a l'accent greu següent, excloent els accents greus

Ordres permeses del mode d'inserció

Ctrl+D

Sense sagnar

Ctrl+T

Sagnat

Ctrl+E

Insereix des de sota

Ctrl+Y

Suprimeix una paraula

Ctrl+W

Suprimeix una paraula

Ctrl+U

Suprimeix la línia

Ctrl+J

Línia nova

Ctrl+H

Suprimeix els caràcters enrere

Ctrl+Inici

Mou al primer caràcter en el document

Ctrl+R n

Insereix el contingut del registre n

Ctrl+O, ordre

Entra en el mode normal per a una única ordre

Ctrl+A

Actualment incrementa el nombre seleccionat

Ctrl+X

Actualment disminueix el nombre seleccionat

L'objecte de text per comes

Aquest objecte no es troba en Vim. L'objecte de text coma fa que sigui fàcil modificar les llistes de paràmetres en llenguatges com C i d'altres llistes separades per comes. Bàsicament es tracta de la zona entre dues comes o entre una coma i un claudàtor. En la línia que es mostra a la il·lustració, es ressalten els tres rangs que aquest objecte de text pot abastar.

Un exemple d'objecte de text per comes

Els intervals de l'objecte de text per comes. Si el cursor està sobre p. ex., arg2, prement ci, («canvi de coma interior») que suprimeix arg2 doble i situa el cursor entre les dues comes en el mode d'inserció. Una manera molt còmoda per a canviar els paràmetres d'una funció.

Característiques que falten

Com ja s'ha esmentat anteriorment, l'objectiu del mode VI del KatePart no és donar suport al 100% de les característiques del Vim.