===============================================================================
=    B e n v i n g u t s   a l   t u t o r   d e l   V I M   -   Versió 1.5   =
===============================================================================

   El Vim és un editor molt potent que té moltes ordres, masses com per
   explicar-les totes un tutor com aquest. Aquest tutor està dissenyat
   per descriure les ordres bàsiques que us permetin fer servir el Vim com
   a editor de propòsit general.

   El temps aproximat de seguir el tutor complet és d'uns 25 o 30 minuts
   depenent de quant temps dediqueu a experimentar.

   Feu una còpia d'aquest fitxer per practicar-hi (si heu començat amb el
   programa vimtutor això que esteu llegint ja és una còpia).

   És important recordar que aquest tutor està pensat per ensenyar
   practicant. És a dir, que haureu d'executar les ordres si les voleu
   aprendre. Si només llegiu el text el més probable és que les oblideu.

   Ara assegureu-vos que la tecla de bloqueig de majúscules no està
   activada i premeu la tecla   j   per moure el cursor avall, fins que
   la lliçó 1.1 ocupi completament la pantalla.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lliçó 1.1:  MOURE EL CURSOR


  ** Per moure el cursor premeu les tecles h,j,k,l tal com està indicat. **
       ^
       k	Pista: La h és a l'esquerra i mou el cursor cap a l'esquerra.
  < h	  l >	       La l és a la dreta i mou el cursor cap a la dreta.
       j	       La j sembla una fletxa cap avall.
       v
  1. Moveu el cursor per la pantalla fins que us sentiu confortables.

  2. Mantingueu premuda la tecla avall (j) una estona.
---> Ara sabeu com moure-us fins a la pròxima lliçó.

  3. Usant la tecla avall, aneu a la lliçó 1.2.

Nota: Si no esteu segurs de la tecla que heu premut, premeu <ESC> per tornar
      al mode Normal. Llavors torneu a teclejar l'ordre que volíeu.

Nota: Les tecles de moviment del cursor (fletxes) també funcionen. Però usant
      hjkl anireu més ràpid, quan us hi hàgiu acostumant.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lliçó 1.2: ENTRAR I SORTIR DEL VIM


  !! NOTA: Abans de seguir els passos següents llegiu *tota* la lliçó!!

  1. Premeu <ESC> (per estar segurs que esteu en el mode Normal).

  2. Teclegeu:			:q! <ENTRAR>.

---> Amb això sortireu de l'editor SENSE desar els canvis que hàgiu pogut
     fer. Si voleu desar els canvis teclegeu:
				:wq  <ENTRAR>

  3. Quan vegeu l'introductor de la shell escriviu l'ordre amb la qual heu
     arribat a aquest tutor. Podria ser:   vimtutor <ENTRAR>
			     O bé:	   vim tutor <ENTRAR>

---> 'vim' és l'editor vim, i 'tutor' és el fitxer que voleu editar.

  4. Si heu memoritzat les ordres, feu els passos anteriors, de l'1 al 3,
     per sortir i tornar a entrar a l'editor. Llavors moveu el cursor avall
     fins la lliçó 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		      Lliçó 1.3: EDITAR TEXT - ESBORRAR


  ** En mode Normal premeu  x  per esborrar el caràcter de sota el cursor. **

  1. Moveu el cursor fins la línia que hi ha més avall marcada amb --->.

  2. Poseu el cursor a sobre el caràcter que cal esborrar, per corregir els
     errors.

  3. Premeu la tecla   x   per esborrar el caràcter.

  4. Repetiu els passos 2 i 3 fins que la frase sigui correcta.

---> Unna vaaca vva salttar sobbree la llluna.

  5. Ara que la línia és correcta, aneu a la lliçó 1.4.

NOTA: Mentre aneu fent no tracteu de memoritzar, practiqueu i prou.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lliçó 1.4: EDITAR TEXT - INSERIR


	    ** En mode Normal premeu   i   per inserir text. **

  1. Moveu el cursor avall fins la primera línia marcada amb --->.

  2. Per fer la primera línia igual que la segona poseu el cursor sobre el
     primer caràcter POSTERIOR al text que s'ha d'inserir.

  3. Premeu la tecla  i  i escriviu el text que falta.

  4. Quan hàgiu acabat premeu <ESC> per tornar al mode Normal. Repetiu
     els passos 2, 3 i 4 per corregir la frase.

---> Falten carctrs en aquesta .
---> Falten alguns caràcters en aquesta línia.

  5. Quan us trobeu còmodes inserint text aneu al sumari de baix.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			     LLIÇÓ 1 SUMARI


  1. El cursor es mou amb les fletxes o bé amb les tecles hjkl.
	 h (esquerra)	j (avall)       k (amunt)    l (dreta)

  2. Per entrar al Vim (des de la shell) escriviu:  vim FITXER <ENTRAR>

  3. Per sortir teclegeu:   <ESC>   :q!	 <ENTRAR>  per descartar els canvis.
	   O BÉ teclegeu:   <ESC>   :wq	 <ENTRAR>  per desar els canvis.

  4. Per esborrar el caràcter de sota el cursor en el mode Normal premeu:  x

  5. Per inserir text on hi ha el cursor, en mode Normal, premeu:
	 i     escriviu el text    <ESC>

NOTA: La tecla <ESC> us portarà al mode Normal o cancel·larà una ordre
      que estigui a mitges.

Ara continueu amb la lliçó 2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lliçó 2.1: ORDRES PER ESBORRAR


       ** Teclegeu  dw  per esborrar fins al final d'una paraula. **

  1. Premeu  <ESC>  per estar segurs que esteu en mode normal.

  2. Moveu el cursor avall fins la línia marcada amb --->.

  3. Moveu el cursor fins el principi de la paraula que s'ha d'esborrar.

  4. Teclegeu   dw  per fer desaparèixer la paraula.

NOTA: Les lletres dw apareixeran a la línia de baix de la pantalla mentre
      les aneu escrivint. Si us equivoqueu premeu <ESC> i torneu a començar.

---> Hi han algunes paraules divertit que no pertanyen paper a aquesta frase.

  5. Repetiu el passos 3 i 4 fins que la frase sigui correcta i continueu a
     la lliçó 2.2.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lliçó 2.2: MÉS ORDRES PER ESBORRAR


	** Escriviu  d$  per esborrar fins al final de la línia. **

  1. Premeu  <ESC>  per estar segurs que esteu en el mode Normal.

  2. Moveu el cursor avall fins a la línia marcada amb --->.

  3. Moveu el cursor fins el final de la línia correcta
     (DESPRÉS del primer . ).

  4. Teclegeu   d$   per esborrar fins al final de la línia.

---> Algú ha escrit el final d'aquesta línia dos cops. línia dos cops.

  5. Aneu a la lliçó 2.3 per entendre què està passant.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		     Lliçó 2.3: SOBRE ORDRES I OBJECTES


  El format de l'ordre d'esborrar  d  és el següent:

	 [nombre]   d	objecte	    O BÉ     d	 [nombre]   objecte
  On:
    nombre  - és el nombre de cops que s'ha d'executar (opcional, omissió=1).
    d       - és l'ordre per esborrar.
    objecte - és la cosa amb la qual operar (llista a baix).

  Una petita llista d'objectes:
    w - des del cursor fins al final de la paraula, incloent-hi l'espai.
    e - des del cursor fins al final de la paraula, SENSE incloure l'espai.
    $ - des del cursor fins al final de la línia.

NOTA:  Per als aventurers: si teclegeu només l'objecte, en el mode Normal,
       sense cap ordre, el cursor es mourà tal com està especificat a la
       llista d'objectes.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lliçó 2.4: UNA EXCEPCIÓ A 'ORDRE-OBJECTE'


	       ** Teclegeu   dd   esborrar tota la línia. **

  Com que molt sovint s'han d'eliminar línies senceres els dissenyadors del
  Vi van creure que seria més fàcil teclejar dd per esborrar tota la línia.

  1. Moveu el cursor a la segona línia de la frase de baix.
  2. Teclegeu  dd  per esborrar la línia.
  3. Ara aneu a la quarta línia.
  4. Teclegeu  2dd  per esborrar dues línies (recordeu nombre-ordre-objecte).

      1)  Les roses són vermelles,
      2)  El fang és divertit,
      3)  Les violetes són blaves,
      4)  Tinc un cotxe,
      5)  Els rellotges diuen l'hora,
      6)  El sucre és dolç,
      7)  Igual que tu.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lliçó 2.5: L'ORDRE DESFER


 ** Premeu  u  per desfer els últims canvis,  U  per arreglar tota la línia. **

  1. Moveu el cursor sobre el primer error de línia de baix marcada amb --->
  2. Premeu  x  per esborrar el caràcter no desitjat.
  3. Ara premeu  u  per desfer l'última ordre executada.
  4. Aquest cop corregiu tots els errors de la línia amb l'ordre  x.
  5. Ara premeu  U  per restablir la línia al seu estat original.
  6. Ara premeu  u  uns quants cops per desfer  U  i les ordres anteriors.
  7. Ara premeu  CONTROL-R  (les dues tecles al mateix temps) uns quants cops
     per refer les ordres.

---> Correegiu els errors d'aqquesta línia i dessfeu-los aamb desfer.

  8. Aquestes ordres són molt útils. Ara aneu al sumari de la lliçó 2.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LLIÇÓ 2 SUMARI


  1. Per esborrar del cursor al final de la paraula teclegeu:     dw

  2. Per esborrar del cursor al final de la línia teclegeu:       d$

  3. Per esborrar una línia sencera teclegeu:     dd

  4. El format de qualsevol ordre del mode Normal és:

       [nombre]   ordre   objecte     O BÉ     ordre	[nombre]   objecte
     on:
       nombre  - és quants cops repetir l'ordre
       ordre   - és què fer, com ara  d  per esborrar
       objecte - és amb què s'ha d'actuar, com ara  w  (paraula),
		 $ (fins a final de línia), etc.

  5. Per desfer les accions anteriors premeu:		u
     Per desfer tots el canvis en una línia premeu:	U
     Per desfer l'ordre desfer premeu:			CTRL-R

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lliçó 3.1: L'ORDRE 'POSAR'


 ** Premeu  p  per posar l'última cosa que heu esborrat després del cursor. **


  1. Moveu el cursor a la primera línia de llista de baix.

  2. Teclegeu  dd  per esborrar la línia i desar-la a la memòria.

  3. Moveu el cursor a la línia ANTERIOR on hauria d'anar.

  4. En mode Normal, premeu  p  per inserir la línia.

  5. Repetiu els passos 2, 3 i 4 per ordenar les línies correctament.

     d) Pots aprendre tu?
     b) Les violetes són blaves,
     c) L'intel·ligència s'aprèn,
     a) Les roses són vermelles,


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lliçó 3.2: L'ORDRE SUBSTITUIR


 ** Premeu  r  i un caràcter per substituir el caràcter de sota el cursor. **

  1. Moveu el cursor a la primera línia de sota marcada amb --->.

  2. Moveu el cursor a sobre del primer caràcter equivocat.

  3. Premeu  r  i tot seguit el caràcter correcte per corregir l'error.

  4. Repetiu els passos 2 i 3 fins que la línia sigui correcta.

--->  Quen van escroure aquerta línia, algh va apretar tikles equivocades!
--->  Quan van escriure aquesta línia, algú va apretar tecles equivocades!

  5. Ara continueu a la lliçó 3.2.

NOTA: Recordeu que heu de practicar, no memoritzar.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			 Lliçó 3.3: L'ORDRE CANVIAR


	** Per canviar una part o tota la paraula, escriviu  cw . **

  1. Moveu el cursor a la primera línia de sota marcada amb --->.

  2. Poseu el cursor sobre la u de 'lughc'.

  3. Teclegeu  cw  i corregiu la paraula (en aquest cas escriviu 'ínia'.)

  4. Premeu <ESC> i aneu al següent error.

  5. Repetiu els passos 3 i 4 fins que les dues frases siguin iguals.

---> Aquesta lughc té algunes paradskl que s'han de cdddf.
---> Aquesta línia té algunes paraules que s'han de canviar.

Noteu que  cw  no només canvia la paraula, també us posa en mode d'inserció.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lliçó 3.4: MÉS CANVIS AMB c


 ** L'ordre canviar s'usa amb els mateixos objectes que l'ordre esborrar. **

  1. L'ordre canviar funciona igual que la d'esborrar. El format és:

       [nombre]   c   objecte	  O BÉ	    c	[nombre]   objecte

  2. Els objectes són els mateixos, com  w  (paraula), $ (final de línia), etc.

  3. Moveu el cursor fins la primera línia marcada amb --->.

  4. Avanceu fins al primer error.

  5. Premeu  c$  per fer la línia igual que la segona i premeu <ESC>.

---> El final d'aquesta línia necessita canvis per ser igual que la segona.
---> El final d'aquesta línia s'ha de corregir amb l'ordre c$.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				LLIÇÓ 3 SUMARI


  1. Per tornar a posar el text que s'ha esborrat, premeu  p . Això posa el
     text esborrat DESPRÉS del cursor (si heu esborrat una línia anirà a
     parar a la línia SEGÜENT d'on hi ha el cursor).

  2. Per substituir el caràcter de sota el cursor, premeu  r  i tot seguit
     el caràcter que ha de reemplaçar l'original.

  3. L'ordre canviar permet canviar l'objecte especificat des del cursor
     fins el final de l'objecte. Per exemple,  cw  canvia el que hi ha des
     del cursor fins al final de la paraula, i  c$  fins al final de línia.

  4. El format de l'ordre canviar és:

	 [nombre]   c	objecte	      O BÉ	c   [nombre]   objecte

Ara aneu a la pròxima lliçó.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lliçó 4.1: SITUACIÓ I ESTAT DEL FITXER


  ** Premeu CTRL-g per veure la situació dins del fitxer i el seu estat.
     Premeu SHIFT-G per anar a una línia determinada. **

  Nota: No proveu res fins que hàgiu llegit TOTA la lliçó!!

  1. Mantingueu premuda la tecla Control i premeu  g . A la part de baix de
     la pàgina apareixerà un línia amb el nom del fitxer i la línia en la
     qual us trobeu. Recordeu el número de la línia pel Pas 3.

  2. Premeu Shift-G per anar al final de tot del fitxer.

  3. Teclegeu el número de la línia on éreu i després premeu Shift-G. Això
     us tornarà a la línia on éreu quan heu premut per primer cop Ctrl-g.
     (Quan teclegeu el número NO es veurà a la pantalla.)

  4. Ara executeu els passos de l'1 al 3.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lliçó 4.2: L'ORDRE CERCAR


	   ** Premeu  /  seguit de la frase que vulgueu cercar. **

  1. En el mode Normal premeu el caràcter  / . Noteu que el cursor apareix
     a la part de baix de la pantalla igual que amb l'ordre  : .

  2. Ara escriviu 'errroor' <ENTRAR>. Aquesta és la paraula que voleu
     cercar.

  3. Per tornar a cercar la mateixa frase, premeu  n .
     Per cercar la mateixa frase en direcció contraria, premeu Shift-N .

  4. Si voleu cercar una frase en direcció ascendent, useu l'ordre  ?  en
     lloc de /.

---> "errroor" no és com s'escriu error; errroor és un error.

Note: Quan la cerca arribi al final del fitxer continuarà a l'inici.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       Lliçó 4.3: CERCA DE PARÈNTESIS


	   ** Premeu  %  per cercar el ),], o } corresponent. **

  1. Poseu el cursor en qualsevol (, [, o { de la línia marcada amb --->.

  2. Ara premeu el caràcter  % .

  3. El cursor hauria d'anar a la clau o parèntesis corresponent.

  4. Premeu  %  per tornar el cursor al primer parèntesi.

---> Això ( és una línia amb caràcters (, [ ] i { } de prova. ))

Nota: Això és molt útil per trobar errors en programes informàtics!






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lliçó 4.4: UNA MANERA DE CANVIAR ERRORS


       ** Escriviu  :s/vell/nou/g  per substituir 'vell' per 'nou'. **

  1. Moveu el cursor a la línia de sota marcada amb --->.

  2. Escriviu  :s/laa/la <ENTRAR> . Aquesta ordre només canvia la primera
     coincidència que es trobi a la línia.

  3. Ara escriviu  :s/laa/la/g  per fer una substitució global. Això
     canviarà totes les coincidències que es trobin a la línia.

---> laa millor època per veure laa flor és laa primavera.

  4. Per canviar totes les coincidències d'una cadena entre dues línies,
     escriviu  :#,#s/vell/nou/g  on #,# són els nombres de les línies.
     Escriviu  :%s/vell/nou/g  per substituir la cadena a tot el fitxer.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			       LLIÇÓ 4 SUMARI


  1. Ctrl-g mostra la posició dins del fitxer i l'estat del mateix.
     Shift-G us porta al final del fitxer. Un número seguit de Shift-G
     us porta a la línia corresponent.

  2. L'ordre  /  seguida d'una frase cerca la frase ENDAVANT.
     L'ordre  ?  seguida d'una frase cerca la frase ENDARRERE.
     Després d'una cerca premeu  n  per trobar la pròxima coincidència en
     la mateixa direcció, o  Shift-N  per cercar en la direcció contrària.

  3. L'ordre  %  quan el cursor és a sobre un (,),[,],{, o } troba la
     parella corresponent.

  4. Per substituir el primer 'vell' per 'nou' en una línia   :s/vell/nou
     Per substituir tots els 'vell' per 'nou' en una línia    :s/vell/nou/g
     Per substituir frases entre les línies # i #	      :#,#s/vell/nou/g
     Per substituir totes les coincidències en el fitxer      :%s/vell/nou/g
     Per demanar confirmació cada cop afegiu 'c'	      :%s/vell/nou/gc


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lliçó 5.1: COM EXECUTAR UNA ORDRE EXTERNA


       ** Teclegeu  :!  seguit d'una ordre externa per executar-la. **

  1. Premeu el familiar  :  per col·locar el cursor a la part de baix de
     la pantalla.  Això us permet entrar una ordre.

  2. Ara teclegeu el caràcter  !  (signe d'exclamació). Això us permet
     executar qualsevol ordre de la shell.

  3. Com a exemple escriviu  ls  i tot seguit premeu <ENTRAR>. Això us
     mostrarà el contingut del directori, tal com si estiguéssiu a la
     línia d'ordres. Feu servir  :!dir  si ls no funciona.

Nota:  D'aquesta manera es pot executar qualsevol ordre externa.

Nota:  Totes les ordres  :  s'han d'acabar amb la tecla <ENTRAR>




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	       Lliçó 5.2: MÉS SOBRE L'ESCRIPTURA DE FITXERS


	  ** Per desar els canvis fets, escriviu  :w  FITXER. ***

  1. Escriviu  :!dir  o bé  :!ls  per obtenir un llistat del directori.
     Ja sabeu que heu de prémer <ENTRAR> després d'això.

  2. Trieu un nom de fitxer que no existeixi, com ara PROVA.

  3. Ara feu:  :w PROVA  (on PROVA és el nom que heu triat.)

  4. Això desa tot el fitxer amb el nom de PROVA. Per comprovar-ho
     escriviu  :!dir  per veure el contingut del directori.

Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
      fitxer serà una còpia exacta del tutor que heu desat.

  5. Ara esborreu el fitxer teclejant (MS-DOS):   :!del PROVA
				   o bé (Unix):   :!rm PROVA


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		 Lliçó 5.3: UNA ORDRE SELECTIVA PER DESAR


	** Per desar una part del fitxer, escriviu  :#,# w FITXER **

  1. Un altre cop, feu  :!dir  o  :!ls  per obtenir un llistat del directori
     i trieu un nom de fitxer adequat com ara PROVA.

  2. Moveu el cursor a dalt de tot de la pàgina i premeu  Ctrl-g  per
     saber el número de la línia.  RECORDEU AQUEST NÚMERO!

  3. Ara aneu a baix de tot de la pàgina i torneu a prémer  Ctrl-g.
     RECORDEU AQUEST NÚMERO TAMBÉ!

  4. Per desar NOMÉS una secció en un fitxer, escriviu  :#,# w PROVA  on
     #,# són els dos números que heu recordat (dalt,baix) i PROVA el nom
     del fitxer.

  5. Mireu que el fitxer nou hi sigui amb  :!dir  però no l'esborreu.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		    Lliçó 5.4: OBTENIR I AJUNTAR FITXERS


	 ** Per inserir el contingut d'un fitxer, feu  :r FITXER **

  1. Assegureu-vos, amb l'ordre  :!dir , que el fitxer PROVA encara hi és.

  2. Poseu el cursor a dalt de tot d'aquesta pàgina.

NOTA:  Després d'executar el Pas 3 veureu la lliçó 5.3. Aleshores moveu-vos
       cap avall fins a aquesta lliçó un altre cop.

  3. Ara obtingueu el fitxer PROVA amb l'ordre  :r PROVA  on PROVA és el
     nom del fitxer.

NOTA:  El fitxer que obtingueu es posa en el lloc on hi hagi el cursor.

  4. Per comprovar que s'ha obtingut el fitxer tireu enrere i mireu com
     ara hi han dues còpies de la lliçó 5.3: l'original i la del fitxer.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				LLIÇÓ 5 SUMARI


  1.  :!ordre  executa una ordre externa.

      Alguns exemples útils són:
	 (MS-DOS)	  (Unix)
	  :!dir		   :!ls		 -  mostra un llistat del directori
	  :!del FITXER     :!rm FITXER   -  esborra el fitxer FITXER

  2.  :w FITXER  escriu el fitxer editat al disc dur, amb el nom FITXER.

  3.  :#,#w FITXER  desa les línies de # a # en el fitxer FITXER.

  4.  :r FITXER  llegeix el fitxer FITXER del disc dur i l'insereix en el
      fitxer editat a la posició on hi ha el cursor.






~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  Lliçó 6.1: L'ORDRE OBRIR


** Premeu  o  per obrir una línia sota el cursor i entrar en mode inserció. **

  1. Moveu el cursor a la línia de sota marcada amb --->.

  2. Premeu  o  (minúscula) per obrir una línia SOTA el cursor i situar-vos
     en mode d'inserció.

  3. Ara copieu la línia marcada amb ---> i premeu <ESC> per tornar al mode
     normal.

---> Després de prémer  o  el cursor es situa a la línia nova en mode inserció.

  4. Per obrir una línia SOBRE el cursor, premeu la  O  majúscula, en lloc
     de la minúscula. Proveu-ho amb la línia de sota.
Obriu una línia sobre aquesta amb Shift-O amb el cursor en aquesta línia.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lliçó 6.2: L'ORDRE AFEGIR


	    ** Premeu  a  per afegir text DESPRÉS del cursor. **

  1. Moveu el cursor al final de la primera línia de sota marcada
     amb ---> prement  $  en el mode Normal.

  2. Premeu la lletra  a  (minúscula) per afegir text DESPRÉS del caràcter
     sota el cursor.  (La  A  majúscula afegeix text al final de línia.)

Nota: Així s'evita haver de prémer  i , l'últim caràcter, el text a inserir,
      la tecla <ESC>, cursor a la dreta, i finalment  x , només per afegir
      text a final de línia.

  3. Ara completeu la primera línia. Tingueu en compte que aquesta ordre
     és exactament igual que la d'inserir, excepte pel que fa al lloc on
     s'insereix el text.

---> Aquesta línia us permetrà practicar
---> Aquesta línia us permetrà practicar afegir text a final de línia.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		  Lliçó 6.3: UNA ALTRA MANERA DE SUBSTITUIR


      ** Teclegeu una  R  majúscula per substituir més d'un caràcter. **

  1. Moveu el cursor a la línia de sota marcada amb --->.

  2. Poseu el cursor al principi de la primera paraula que es diferent
     respecte a la segona línia marcada amb ---> (la paraula "l'última").

  3. Ara premeu  R  i substituïu el que queda de text a la primera línia
     escrivint sobre el text vell, per fer-la igual que la segona.

---> Per fer aquesta línia igual que l'última useu les tecles.
---> Per fer aquesta línia igual que la segona, premeu R i el text nou.

  4. Tingueu en compte que en prémer <ESC> per sortir, el text que no
     s'hagi alterat es manté.




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			Lliçó 6.4: ESTABLIR OPCIONS

      ** Feu que les ordres cercar o substituir ignorin les diferències
		     entre majúscules i minúscules **

  1. Cerqueu la paraula 'ignorar' amb: /ignorar
     Repetiu-ho uns quants cops amb la tecla n.

  2. Establiu l'opció 'ic' (Ignorar Capitals) escrivint:
     :set ic

  3. Ara cerqueu 'ignorar' un altre cop amb la tecla n.
     Repetiu-ho uns quants cops més.

  4. Establiu les opcions 'hlsearch' i 'incsearch':
     :set hls is

  5. Ara torneu a executar una ordre de cerca, i mireu què passa:
     /ignorar

  6. Per treure el ressalt dels resultats, feu:
     :nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			      LLIÇÓ 6 SUMARI


  1. L'ordre  o  obre una línia SOTA la del cursor i mou el cursor a la nova
     línia, en mode Inserció.
     La  O  majúscula obre la línia a SOBRE la que hi ha el cursor.

  2. Premeu una  a  per afegir text DESPRÉS del caràcter sota el cursor.
     La  A  majúscula afegeix automàticament el text a final de línia.

  3. L'ordre  R  majúscula us posa en mode substitució fins que premeu <ESC>.

  4. Escriviu ":set xxx" per establir l'opció "xxx"









~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  LLIÇÓ 7: ORDRES D'AJUDA


		 ** Utilitzeu el sistema intern d'ajuda **

  El Vim té un extens sistema d'ajuda. Per llegir una introducció proveu una
  d'aquestes tres coses:
	- premeu la tecla <AJUDA> (si en teniu alguna)
	- premeu la tecla <F1> (si en teniu alguna)
	- escriviu   :help <ENTRAR>

  Teclegeu  :q <ENTRAR>  per tancar la finestra d'ajuda.

  Podeu trobar ajuda sobre pràcticament qualsevol tema donant un argument
  a l'ordre ":help". Proveu això (no oblideu prémer <ENTRAR>):

	:help w
	:help c_<T
	:help insert-index
	:help user-manual


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		       LLIÇÓ 8: CREAR UN SCRIPT D'INICI

		     ** Activar funcions automàticament **

 El Vim té moltes més funcions que el Vi, però moltes estan desactivades per
 omissió. Per començar a utilitzar més funcions heu de crear un fitxer "vimrc".

  1. Comenceu a editar el fitxer "vimrc", depenent del sistema
	:edit ~/.vimrc			per Unix
	:edit $VIM/_vimrc		per MS-Windows

  2. Ara llegiu el fitxer "vimrc" d'exemple:

	:read $VIMRUNTIME/vimrc_example.vim

  3. Deseu el fitxer amb:

	:write

 El pròxim cop que executeu el Vim usarà ressalt de sintaxi.
 Podeu afegir els ajustos que vulgueu en aquest fitxer "vimrc".

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Aquí conclou el Tutor del Vim. Ha sigut un intent de fer-vos una breu
  introducció a l'editor Vim, suficient com per què el pugueu començar a fer
  servir. Està lluny de ser complet perquè el Vim té moltes més ordres.
  Llegiu el manual de l'usuari: ":help user-manual".

  Per un estudi més profund us recomanem el següent llibre:
	Vim - Vi Improved - de Steve Oualline
	Editorial: New Riders
  És el primer llibre dedicat completament al Vim, especialment útil per a
  usuaris novells. Té molts exemples i dibuixos.
  Vegeu http://iccf-holland.org/click5.html

  Aquest altre és més vell i tracta més sobre el Vi que sobre el Vim:
	Learning the Vi Editor - de Linda Lamb
	Editorial: O'Reilly & Associates Inc.
  És un bon llibre per saber qualsevol cosa que desitgeu sobre el Vi.
  La sisena edició també inclou informació sobre el Vim.

  Aquest tutorial ha estat escrit per Michael C. Pierce i Robert K. Ware,
  Colorado School of Mines amb la col·laboració de Charles Smith,
  Colorado State University. E-mail: bware@mines.colorado.edu.

  Modificat pel Vim per Bram Moolenaar.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
