&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 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 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 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 està inhabilitat 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 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 introduir &Ctrl;W, `h` (canviar a la vista dividida de la dreta) assegureu-vos que Bloq Majús. 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 per refer.

  Vim: &Ctrl;R és 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 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 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 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 (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
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 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: 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 eliminar
`D` | Suprimeix fins al final de la línia
`x` | Suprimeix el caràcter a la dreta del cursor
Suprimeix | 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 fer minúscules
`guu` | Torna a minúscules la línia actual
`gU` | Segueix amb un moviment per fer majúscules
`gUU` | 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
`]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 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
Fletxa esquerra | Esquerra
&Retro; | 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 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).
&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 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 següent claudàtor de tancament [`)`], excloent els claudàtors
`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 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-hi 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 | 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
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 còmoda per 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.