# El mode d'entrada del Vi

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

Per a 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 predeterminada és &Meta;&Ctrl;V -a on &Meta; usualment serà la tecla Windows-).

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 &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 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 &kappname; la drecera &Ctrl;R de manera predeterminada pren la funció de substituir de &kappname; (cerca i substitueix). De manera predeterminada, el mode VI no substitueix 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 a ambdues ordres canvia i suprimeix, `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 això, 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 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 &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, vegeu advanced-editing-tools-commandline. Per a utilitzar-lo, premeu :, introduïu l'ordre, i premeu &Intro;.

### 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
&Ins; | 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
∇ | 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&Left; | Va a la divisió esquerra de la finestra
&Ctrl; W, `l` &Ctrl; W&Right; | Va a la divisió dreta de la finestra
&Ctrl; W, `k` &Ctrl; W&Up; | Va a la divisió de sobre a la finestra
&Ctrl; W, `j` &Ctrl; W&Down; | 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
&Left; | Esquerra
&Retro; | Esquerra
`j` | Avall
&Down; | Avall
`k` | Amunt
&Up; | Amunt
`l` | Dreta
&Right; | Dreta
&Space; | Dreta
`$` | Final de línia
&End; | Final de línia
`0` | El primer caràcter de la línia (Columna 0)
&Home; | 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;&Left; | Mou una paraula a l'esquerra
&Ctrl;&Right; | 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 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 | 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;&Home; | 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 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 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 &kappname; no és donar suport al 100% de les característiques del Vim.