&Erlend.Hamberg; &Erlend.Hamberg.mail;
&traductor.Antoni.Bella;

# El mode d'entrada del Vi

## Mode d'entrada del Vi

L'objectiu del mode VI no és el substituir-lo completament per Vim, sí que dóna 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 &kappname; com al seu editor intern.

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

Per habilitar el mode d'entrada VI per a totes les vistes, aneu a Arranjament Configura &kappname;... 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 per omissió és Meta&Ctrl;V -a on Meta usualment serà la tecla Windows-).

En el Mode Vi moltes ordres de teclat són sensibles a 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 introduir l'ordre `y` (copia), assegureu-vos que Bloq Majús. està deshabilitat i premeu Y. Per 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ús. i sense necessitat de prémer &Maj;. No obstant, 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 introduir &Ctrl;W, `h` (canviar a la vista dividida de la dreta) assegureu-vos que Bloq Majús. està deshabilitada, 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 &kappname; que són incompatibles amb Vim (no comptant les coses que falten). S'enumeren a continuació juntament amb les raons respectives.

- &kappname;: `U` i &Ctrl;R són per refer.

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

  La raó de tenir U actua com refer en el mode VI de &kappname; la drecera &Ctrl;R per omissió pren la funció de substituir de &kappname; (cerca i substitueix). Per omissió, el mode VI no solapa les dreceres de &kappname; (això es pot configurar en Arranjament Configura &kappname;... 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 &kappname;, de manera que no seria trivial donar-ne suport.

- &kappname;: ``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 &kappname; -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.

- &kappname;: `Y` copia al final de la línia.

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

  El comportament del VI per a l'ordre `Y` és en la pràctica un error. Per ambdues ordres canvia i esborra, `c` `c`/`d` `d` 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, tant `y` `y` com `Y` copien la línia actual. En mode VI de &kappname; `Y` copiarà al final de la línia. Això es descriu més lògicament en la documentació de Vim.

- &kappname;: `O` i `o` obre [compte] noves línies i posa en el mode d'inserció.

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

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

### Alternar entre els modes

- Mode normal us permet introduir ordres per navegar o editar un document, i és el mode per omissió. 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 seleccionar caràcters o `V` per 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 &kappname;, la qual us permetrà executar moltes ordres disponibles en les implementacions de Vi, així com algunes específiques per a &kappname;. Per a més informació sobre aquestes ordres, veure . Per usar-lo, premeu :, introduïu l'ordre, i premeu &Intro;.

### Integració amb les característiques de Kate

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

- Les marques de Vi i els punts de Kate estan integrats. Quan es crea una marca en el mode de Vi, es crea un punt de Kate corresponent i apareixerà al menú Punts. Per contra, quan es crea un punt de 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
`v` | Entra en el mode visual, selecciona caràcters
`V` | Entra en el mode visual, selecciona línies
`o` | Obre una nova línia sota la línia actual
`O` | Obre una nova línia sobre la línia actual
`J` | Uneix línies
`c` | Canvi: Segueix un moviment per eliminar i entrar en el mode d'inserció
`C` | Canvi al final de la línia: Elimina al final de la línia i entrar en el mode d'inserció
`cc` | Canvi de línia: Esborra 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 eliminar
`D` | Esborra fins al final de la línia
`x` | Esborra el caràcter a la dreta del cursor
`X` | Esborra el caràcter a l'esquerra del cursor
`gu` | Segueix amb un moviment per fer minúscules
`g` | Torna a minúscules la línia actual
`gU` | Segueix amb un moviment per fer majúscules
`g` | Torna a majúscules la línia actual
`y` | Segueix un moviment per 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
`r` | Segueix amb un caràcter a substituir el caràcter després del cursor
`:` | 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 pels moviments)
`n` | Cerca següent
`N` | Cerca 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 Cursor esquerre | Va a la divisió esquerre de la finestra.
&Ctrl; W, `l` &Ctrl; W Cursor dret | Va a la divisió dreta de la finestra.
&Ctrl; W, `k` &Ctrl; W Cursor amunt | Va a la divisió de a sobre a la finestra.
&Ctrl; W, `j` &Ctrl; W Cursor avall | Va a la divisió de a sota a la finestra.

### Moviments suportats

Aquests se poden usar per 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 que indicarà quants moviments són apropiats de fer.

`h` | Esquerra
Cursor esquerre | Esquerra
&Retro; | Esquerra
`j` | Avall
Cursor avall | Avall
`k` | Amunt
Cursor amunt | Amunt
`l` | Dreta
Cursor dret | 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 anar a la dreta del cursor
`F` | Segueix el caràcter per anar a l'esquerra del cursor
`t` | Segueix el caràcter per anar a la dreta del cursor, situa el cursor sobre el caràcter abans que
`T` | Segueix el caràcter per 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 anar a la columna
`%` | Segueix un element per 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 endavant cap a la següent ubicació.
&Ctrl;O | Va enrere 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 a avall una línia visual (quan s'usa l'ajust de línia dinàmic).

### Objectes de text suportats

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

`iw` | Paraula interior: Paraula incloent 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 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 els claudàtors
`a[` | Claudàtor d'obertura anterior [`(`] al següent claudàtor de tancament [`)`], excloent els claudàtors
`i{` | Claudàtor d'obertura anterior [`{`] al següent claudàtor de tancament [`}`], incloent els claudàtors
`a{` | Claudàtor d'obertura anterior [`{`] al següent claudàtor de tancament [`}`], excloent els claudàtors
`i<` | Abraçadora d'obertura anterior [`<`] a la següent abraçadora de tancament [`>`], incloent les abraçadores
`a<` | Abraçadora d'obertura anterior [`<`] a la següent abraçadora de tancament [`>`], excloent les abraçadores
`i`` | Accent anterior (```) al següent accent, inclosos els accents oberts
`a`` | Accent anterior (```) al següent accent, excloent els accents oberts

### Ordres permeses del mode d'inserció

&Ctrl;D | Sense sagnar
&Ctrl;T | Sagnat
&Ctrl;E | commandInsertFromBelow
&Ctrl;Y | Suprimeix una paraula
&Ctrl;W | Suprimeix una paraula
&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ó de la dreta, els tres rangs que aquest objecte de text pot abastar es destaquen en vermell.

Un exemple d'objecte de text per comes
Un exemple d'objecte de text per comes

Els intervals de l'objecte de text per comes. Si el cursor està sobre &pex;, arg2, prement `ci`, (canvi de coma interior) que elimina arg2 doble i situa el cursor entre les dues comes en el mode d'inserció. Una manera molt convenient per canviar els paràmetres d'una funció.

### Característiques que falten

Com ja s'ha esmentat anteriorment, l'objectiu del mode VI de &kappname; no és donar suport al 100% de les característiques del Vim, però, hi ha algunes característiques que són molt estranyades:

- El mode visual de bloc: En especial la capacitat d'anteposar/afegir text a la selecció de blocs visual.

- Tenir disponibles les ordres executades anteriorment en altres programes de l'aplicació &kappname;.

- El codi de cerca necessita millores i les ordres `*` i `#` només fan cerques regulars.