
% VIM Quick Reference Card
% Copyright (c) 2002 Laurent Gregoire.
% TeX Format


% Note:  Comment the following line (\input outopt.tex) if you want
% to generate yourself the card, either in DVI or PDF format.
% Uncomment the three next lines for PDF generation.
% Command for DVI : tex vimqrc.tex
% Command for PDF : pdftex vimqrc.tex

\input outopt.tex

%\pdfoutput=1
%\pdfpageheight=21cm
%\pdfpagewidth=29.7cm

% Font definitions
\font\bigbf=cmbx12
\font\smallrm=cmr8
\font\smalltt=cmtt8
\font\tinyit=cmr5

\def\title#1{\hfil{\bf #1}\hfil\par\vskip 2pt\hrule}
\def\cm#1#2{{\tt#1}\dotfill#2\par}
\def\cn#1{\hfill$\lfloor$ #1\par}
\def\sect#1{\vskip 0.7cm {\it#1\/}\par}

% Characters definitions
\def\bs{$\backslash$}
\def\backspace{$\leftarrow$}
\def\ctrl{{\rm\char94}\kern-1pt}
\def\enter{$\hookleftarrow$}
\def\or{\thinspace{\tinyit{o  b\'e}}\thinspace}
\def\key#1{$\langle${\rm{\it#1\/}}$\rangle$}
\def\rapos{\char125}
\def\lapos{\char123}
\def\bs{\char92}
\def\tild{\char126}

% Three columns definitions
\parindent 0pt
\nopagenumbers
\hoffset=-1.56cm
\voffset=-1.54cm
\newdimen\fullhsize
\fullhsize=27.9cm
\hsize=8.5cm
\vsize=19cm
\def\fullline{\hbox to\fullhsize}
\let\lr=L
\newbox\leftcolumn
\newbox\midcolumn
\output={
  \if L\lr
    \global\setbox\leftcolumn=\columnbox
    \global\let\lr=M
  \else\if M\lr
    \global\setbox\midcolumn=\columnbox
    \global\let\lr=R
  \else
    \tripleformat
    \global\let\lr=L
  \fi\fi
  \ifnum\outputpenalty>-20000
  \else
    \dosupereject
  \fi}
\def\tripleformat{
  \shipout\vbox{\fullline{\box\leftcolumn\hfil\box\midcolumn\hfil\columnbox}}
  \advancepageno}
\def\columnbox{\leftline{\pagebody}}

% Card content
% Header
%\hrule\vskip 3pt
\title{REFER\`ENCIA R\`APIDA DE VIM}

%\sect{Modes}
%\cm{\key{esc}}{mode normal (per introduir ordres d'edici\'o)}
%\cm{i a s o ...}{mode d'inserci\'o (per introduir text)}
%\cm{v V \ctrl V}{mode visual (per seleccionar text)}
%\cm{:}{mode Ex (per introduir ordres Ex)}

\sect{Moviments b\`asics}
\cm{h l k j}{car\`acter esquerra, dreta; l\'{\i}nia amunt, avall}
\cm{b w}{paraula esquerra, dreta}
\cm{ge e}{final de paraula esquerra, dreta}
\cm{\lapos\ \rapos}{comen\c cament del par\`agraf anterior, seg\"uent}
\cm{( )}{comen\c cament de frase anterior, seg\"uent}
\cm{0 gm}{comen\c cament, mig de la l\'{\i}nia}
\cm{\^\ \$}{primer, \'ultim caracter de la l\'{\i}nia}
\cm{$n$G $n$gg}{l\'{\i}nia $n$ (per defecte la \'ultima), primera}
\cm{$n$\%}{percentatge $n$ del fitxer {\it($n$ \'es obligatori)\/}}
\cm{$n|$}{columna $n$ de la l\'{\i}nia actual}
\cm{\%}{par\`entesi, claud\`ator, clau, corresponent, {\tt\#define}}
\cm{$n$H $n$L}{l\'{\i}nia $n$ des del principi, final de la finestra}
\cm{M}{l\'{\i}nia central de la finestra}

\sect{Inserci\'o \& rempla\c cament}
\cm{i a}{inserta abans, despr\'es del cursor}
\cm{I A}{inserta al comen\c cament, final de la l\'{\i}nia}
\cm{gI}{inserta text a la primera columna}
\cm{o O}{obre una l\'{\i}nia nova sota, sobre l'actual}
\cm{r$c$}{rempla\c ca per $c$ el car\`acter sota el cursor}
\cm{gr$c$}{com {\tt r}, per\`o sense afectar el format}
\cm{R}{rempla\c ca car\`acters comen\c cant al cursor}
\cm{gR}{com {\tt R}, per\`o sense afectar el format}
\cm{c$m$}{canvia el text del moviment $m$}
\cm{cc\or S}{canvia la l\'{\i}nia actual}
\cm{C}{canvia fins al final de la l\'{\i}nia}
\cm{s}{canvia un car\`acter i inserta}
\cm{\tild}{canvia maj\'uscules/min\'uscules}
\cm{g\tild{$m$}}{canvia maj./min. del moviment $m$}
\cm{gu$m$ gU$m$}{canvia maj./min. el text del moviement $m$}
\cm{$<$$m$ $>$$m$}{sagna esquerra, dreta el text de $m$}
\cm{$n$$<$\kern-3pt$<$ $n$$>$\kern-3pt$>$}{sagna $n$ l\'{\i}nies cap a l'esquerra, dreta}

\sect{Supressi\'o}
\cm{x X}{suprimeix el car\`acter sota, abans del cursor}
\cm{d$m$}{suprimeix el text del moviment $m$}
\cm{dd D}{suprimeix la l\'{\i}nia actual, fins al final}
\cm{J gJ}{ajunta la l\'{\i}nia acutal i la seg\"uent, sense espai}
\cm{:$r$d\enter}{suprimeix $r$ l\'{\i}nies}
\cm{:$r$d$x$\enter}{suprimeix $r$ l\'{\i}nies i posa-les al registre $x$}

\sect{Mode d'inserci\'o}
\cm{\ctrl V$c$ \ctrl V$n$}{insereix car\`acter literal $c$, de valor ASCII $n$}
% \cm{\ctrl V$n$}{insert decimal value of character}
\cm{\ctrl A}{insereix el mateix text un altre cop}
\cm{\ctrl @}{igual que {\tt\ctrl A}, i torna a mode normal}
\cm{\ctrl R$x$ \ctrl R\ctrl R$x$}{insereix el contingut de $x$, literalment}
\cm{\ctrl N \ctrl P}{completa el text mirant endavant, enrere}
\cm{\ctrl W}{suprimeix la paraula sota el cursor}
\cm{\ctrl U}{suprimeix el text inserit a la l\'{\i}nia acutal}
\cm{\ctrl D \ctrl T}{sagna a l'esquerra, a la dreta}
\cm{\ctrl K$c_1$$c_2$\or $c_1$\kern-1pt\backspace$c_2$}{introdueix el d\'{\i}graf $\{c_1,c_2\}$}
\cm{\ctrl O$c$}{executa $c$ en un mode normal temporal}
\cm{\ctrl X\ctrl E \ctrl X\ctrl Y}{despla\c ca amunt, avall}
\cm{\key{esc}\or \ctrl[}{abandona l'inserci\'o i torna a mode normal}

\sect{C\`opia}
\cm{"$x$}{empra el registre $x$ en l'operaci\'o seg\"uent}
\cm{:reg\enter}{mostra el contingut de tots els registres}
\cm{:reg $x$\enter}{mostra el contingut del registre $x$}
\cm{y$m$}{copia el text del moviment $m$}
\cm{yy\or Y}{copia la l\'{\i}nia actual}
\cm{p P}{enganxa abans, despr\'es del cursor}
\cm{]p [p}{com {\tt p}, {\tt P} amb el sagnat correcte}
\cm{gp gP}{com {\tt p}, {\tt P} deixant el cursor al final}

\sect{Inserci\'o avan\c cada}
\cm{g?$m$}{codifica en rot13 el text del moviment $m$}
\cm{$n$\ctrl A $n$\ctrl X}{$+n$, $-n$ al nombre sota el cursor}
\cm{gq$m$}{justifica les l\'{\i}nies del moviment $m$}
\cm{:$r$ce $w$\enter}{centra les l\'{\i}nies del rang $r$, amplada $w$}
\cm{:$r$le $i$\enter}{alinea a l'esq. les l\'{\i}nies de $r$, indentaci\'o $i$}
\cm{:$r$ri $w$\enter}{alinea a la dreta les l\'{\i}nies de $r$, amplada $w$}
\cm{!$m$$c$\enter}{filtra les l\'{\i}nes de $m$ per l'ordre $c$}
\cm{$n$!!$c$\enter}{filtra $n$ l\'{\i}nies per l'ordre $c$}
\cm{:$r$!$c$\enter}{filtra el rang $r$ per l'ordre $c$}

\sect{Mode visual}
\cm{v V \ctrl V}{selecciona car\`acters, l\'{\i}nies, bloc}
\cm{o}{mou el cursor al principi de la selecci\'o}
\cm{gv}{repeteix la selecci\'o anterior}
\cm{aw as ap}{selecciona paraula, frase, par\`agraf}
\cm{ab aB}{selecciona un bloc ( ), un bloc {\tt\lapos} {\tt\rapos}}

\vskip 1cm
\sect{Desfer, repetici\'o \& registres}
\cm{u U}{desf\'es l'\'ultima acci\'o, restaura la l\'{\i}nia}
\cm{.\thinspace\thinspace\ctrl R}{repeteix l'acci\'o, ref\'es l'acci\'o desfeta}
\cm{$n$.\ }{repeteix l'acci\'o amb el nombre $n$}
\cm{q$c$ q$C$}{enregistra, afegeix car\`acters al registre $c$}
\cm{q}{atura l'enregistratge}
\cm{@$c$}{executa el contingut del registre $c$}
\cm{@@}{repeteix l'\'ultima acci\'o {\tt @}}
\cm{:@$c$\enter}{executa el registre $c$ en mode {\it Ex\/}}
\cm{:$r$g/$p$/$c$\enter}{executa l'ordre {\it Ex\/} $c$ al rang $r$}
\cn{all\`a on $p$ concorda}

\vskip -0.2cm
\sect{Moviments avan\c cats}
\cm{- +}{l\'{\i}nia amunt, avall fins el primer car\`acter no-blanc}
\cm{B W}{paraula esquerra, dreta}
\cm{gE E}{final de paraula esquerra, dreta}
\cm{$n$\_}{avall $n-1$ l\'{\i}nies fins el primer car\`acter no-blanc}
\cm{g0}{comen\c cament de la l\'{\i}nia en la {\it pantalla\/}}
\cm{g\^\ g\$}{primer, \'ultim car\`acter de la l\'{\i}nia en la {\it pantalla\/}}
\cm{gk gj}{l\'{\i}nia de {\it pantalla\/} amunt, avall}
\cm{f$c$ F$c$}{seg\"uent, anterior occur\`encia del car\`acter $c$}
\cm{t$c$ T$c$}{abans de la seg\"uent, anterior occurr\`encia de $c$}
\cm{; ,}{repeteix l'\'ultim {\tt fFtT}, cap a l'altre cant\'o}
\cm{[[ ]]}{comen\c cament de la secci\'o enrere, endavant}
\cm{[] ][}{final de secci\'o enrere, endavant}
\cm{[( ])}{(, ) enrere, endavant}
\cm{[\lapos\ ]\rapos}{{\tt\lapos}, {\tt\rapos} enrere, endavant}
\cm{[m ]m}{m\`etode {\it Java\/} enrere, endavant}
\cm{[\# ]\#}{{\tt\#if}, {\tt\#else}, {\tt\#endif} enrere, endavant}
\cm{[* ]*}{comen\c cament, final de {\tt/* */} enrere, endavant}

\sect{Cerca \& substituci\'o}
\cm{/$s$\enter\ ?$s$\enter}{cerca $s$ endavant, enrere}
\cm{/$s$/$o$\enter\ ?$s$?$o$\enter}{cerca $s$ amb despla\c cament $o$}
\cm{n\or /\enter}{repeteix \'ultima cerca cap endavant}
\cm{N\or ?\enter}{repeteix \'ultima cerca cap enrere}
\cm{\# *}{cerca enrere, endavant la paraula sota el cursor}
\cm{g\# g*}{el mateix, per\`o troba concordances parcials}
\cm{gd gD}{definici\'o local, global del s\'{\i}mbol sota el cursor}
\cm{:$r$s/$f$/$t$/$x$\enter}{substiteix $f$ per $t$ al rang $r$}
\cn{$x:$ {\tt g}---totes les ocurrences, {\tt c}---demana confirmaci\'o}
\cm{:$r$s $x$\enter}{repeteix substituci\'o amb nous $r$ \& $x$}

\vskip1cm
\sect{Car\`acters especials a la cerca}
\cm{.\thinspace\thinspace\thinspace\ctrl\ \$}{qualsevol car\`acter, principi, final de l\'{\i}nia}
\cm{\bs$<$ \bs$>$}{principi, final de paraula}
\cm{[$c_1$-$c_2$]}{un car\`acter al rang $c_1..c_2$}
\cm{[\ctrl$c_1$-$c_2$]}{un car\`acter fora del rang}
\cm{\bs i \bs k \bs I \bs K}{identificador, paraula clau; sense d\'{\i}gits}
\cm{\bs f \bs p \bs F \bs P}{nom de fitxer, car. imprimible; s.d.}
\cm{\bs s \bs S}{espai blanc, espai no-blanc}
\cm{\bs e \bs t \bs r \bs b}{\key{esc}, \key{tab}, \key{\enter}, \key{$\gets$}}
\cm{\bs = * \bs +}{concorda $0..1$, $0..\infty$, $1..\infty$ \`atoms precedents}
\cm{\bs$|$}{separa dues branques (disjunci\'o)}
\cm{\bs( \bs)}{agrupa patrons dins un \`atom}
\cm{\bs \& \bs $n$}{el patr\'o sencer, el $n$-\`essim grup {\tt()}}
\cm{\bs u \bs l}{car\`acter en min\'uscules, en maj\'uscules}
\cm{\bs c \bs C}{ignora, concorda maj\'uscules/min\'uscules}

\sect{Despla\c caments a les ordres de cerca}
\cm{$n$\or +$n$}{$n$ l\'{\i}nies cap avall a la columna 1}
\cm{-$n$}{$n$ l\'{\i}nies amunt a la column 1}
\cm{e+$n$ e-$n$}{$n$ car. dreta, esq., del final de concordan\c ca}
\cm{s+$n$ s-$n$}{$n$ car. dreta, esq., del principi de conc.}
\cm{;$sc$}{executa l'ordre de cerca $sc$ despr\'es}

\sect{Marques i moviments}
\cm{m$c$}{marca la posici\'o actual com $c\in[a..Z]$}
\cm{`$c$ `$C$}{v\'es a la marca $c$ del fitxer actual, $C$ qualsevol}
\cm{`$0..9$}{v\'es a les \'ultimes posicions de sortida}
\cm{`\/`  `\/"}{posici\'o d'abans del salt, abans de l'edici\'o}
\cm{`[ `]}{comen\c cament, final de l'\'ultim text editat}
\cm{:marks\enter}{llista de marques actives}
\cm{:jumps\enter}{llista de salts}
\cm{$n$\ctrl O}{$n$-\`essima posici\'o antiga a la llista de salts}
\cm{$n$\ctrl I}{$n$-\`essima posici\'o nova a la llista de salts}

\sect{Mapatge \& abreviatures}
\cm{:map $c$ $e$\enter}{mapar $c\mapsto e$ en modes normal i visual}
\cm{:map!\ $c$ $e$\enter}{mapar en modes d'inserci\'o i l\'{\i}nia d'ordres}
\cm{:unmap $c$\enter\ :unmap!\ $c$\enter}{suprimeix el mapatge $c$}
\cm{:mk $f$\enter}{desa els mapatges actuals al fitxer $f$}
\cm{:ab $c$ $e$\enter}{afegeix abreviatura $c\mapsto e$}
\cm{:ab $c$\enter}{mostra les abreviatures que comencen en $c$}
\cm{:una $c$\enter}{suprimeix l'abreviatura $c$}

\sect{Tags (etiquetes)}
\cm{:ta $t$\enter}{salta al tag $t$}
\cm{:$n$ta\enter}{salta al $n$-\`essim tag de la llista}
\cm{\ctrl ] \ctrl T}{salta al tag sota el cursor, torna}
\cm{:ts $t$\enter}{mostra els tags que concorden i tria'n un}
\cm{:tj $t$\enter}{salta a un tag o tria'n un si s'escau}
\cm{:tags\enter}{mostra la llista de tags}
\cm{:$n$po\enter\ :$n$\ctrl T\enter}{torna de l'$n$-\`essim tag}
\cm{:tl\enter}{salta a l'\'ultim tag que concorda}
\cm{\ctrl W\rapos\ :pt $t$\enter}{previsualitza tag sota el cursor, $t$}
\cm{\ctrl W]}{parteix la finestra i mostra-hi el tag sota el cursor}
\cm{\ctrl Wz\or :pc\enter}{tanca la finestra de previsualitzaci\'o}

\sect{Despla\c cament \& finestres}
\cm{\ctrl E \ctrl Y}{despla\c ca una l\'{\i}nia amunt, avall}
\cm{\ctrl D \ctrl U}{despla\c ca mitja p\`agina amunt, avall}
\cm{\ctrl F \ctrl B}{despla\c ca una p\`agina amunt, avall}
\cm{zt\or z\enter}{posa la l\'{\i}nia actual dalt de la finestra}
\cm{zz\or z.\ }{l\'{\i}nia actual al mig de la finestra}
\cm{zb\or z-}{l\'{\i}nia ctual a baix de la finestra}
\cm{zh zl}{despla\c ca un car\`acter a la dreta, esquerra}
\cm{zH zL}{despla\c ca mitja pantalla a la dreta, esquerra}
\cm{\ctrl Ws\or :split\enter}{parteix la finestra en dues}
\cm{\ctrl Wn\or :new\enter}{crea una finestra nova buida}
\cm{\ctrl Wo\or :on\enter}{fes que la finestra actual sigui la \'unica}
\cm{\ctrl Wj \ctrl Wk}{v\'es a la finestra d'amunt, d'avall}
\cm{\ctrl Ww \ctrl W\ctrl W}{finestra d'amunt, d'avall (c\'{\i}clicament)}

\sect{Ordres Ex (\enter)}
\cm{:e $f$}{edita el fitxer $f$, excepte si s'han fet canvis}
\cm{:e!\ $f$}{edita el fitxer $f$}
\cm{:wn :wN}{desa aquest fitxer i edita el seg\"uent, l'anterior}
\cm{:n :N}{edita el fitxer seg\"uent, anterior de la llista}
\cm{:$r$w}{escriu el rang $r$ al fitxer actual}
\cm{:$r$w $f$}{escriu el rang $r$ al fitxer $f$}
\cm{:$r$w$>$\kern-3pt$>$$f$}{escriu el rang $r$ al final de $f$}
\cm{:q :q!}{surt amb confirmaci\'o, perdent els canvis}
\cm{:wq\or :x\or ZZ}{desa aquest fitxer i surt}
\cm{\key{up} \key{down}}{autocompleta ordres}
\cm{:r $f$}{insereix el contingut de $f$ sota el cursor}
\cm{:r!\ $c$}{insereix la sortida de l'ordre $c$}
\cm{:all}{obre una finestra per cada fitxer}
\cm{:args}{mostra la l\'{\i}nia d'ordres}

\sect{Rangs}
\cm{, ;\ }{separa dos nombres de l\'{\i}nia, primera l\'{\i}nia}
\cm{$n$}{nombre de l\'{\i}nia absolut}
\cm{.\thinspace\thinspace\thinspace\$}{l\'{\i}nia actual, \'ultima l\'{\i}nia del fitxer}
\cm{\% '<,'>}{fitxer sencer, \`area visual}
\cm{'$t$}{posici\'o de la marca $t$}
\cm{/$p$/ ?$p$?}{l\'{\i}nia seg\"uent, anterior, on $p$ concorda}
\cm{+$n$ -$n$}{$+n$, $-n$ al nombre de l\'{\i}nia anterior}

\sect{Plecs}
\cm{zf zf$m$}{fes un plec de l'\`area visual, del moviment $m$}
\cm{:$r$fo}{fes un plec del rang $r$}
\cm{zd zE}{esborra el plec sota el cursor, tots els visibles}
\cm{zo zc zO zC}{obre, tanca un plec; recursivament}
\cm{[z ]z}{v\'es al comen\c cament, final del plec actual}
\cm{zj zk}{v\'es al plec de m\'es avall, amunt}

\sect{Miscel$\cdot$l\`ania}
\cm{:sh\enter\ :!$c$\enter}{int\`erpret d'ordres, executa-hi $c$}
\cm{K}{cerca la paraula sota el cursor al {\tt man}}
\cm{:make\enter}{executa {\tt make} i v\'es al primer error}
\cm{:cn\enter\ :cp\enter}{mostra l'error seg\"uent, anterior}
\cm{:cl\enter\ :cf\enter}{mostra tots els errors, d'un fitxer}
\cm{\ctrl L \ctrl G}{redibuixa la pantalla, mostra fitxer i posici\'o}
\cm{g\ctrl G}{mostra coordenades del cursor}
\cm{ga}{mostra la valor A{\smallrm SCII} del car\`acter sota el cursor}
\cm{gf}{obre fitxer amb el nom que apareix al cursor}
\cm{:redir$>$$f$\enter}{redirigeix la sortida al fitxer $f$}
\cm{:mkview $[f]$}{desa l'estat actual [al fitxer $f$]}
\cm{:loadview $[f]$}{carrega un estat [del fitxer $f$]}
\cm{\ctrl @ \ctrl K \ctrl \_\ \bs\ F$n$ \ctrl F$n$}{tecles no mapades}

\sect{Invocaci\'o}
\cm{vim $f$ +$n$}{obre el fitxer $f$ i v\'es a la l\'{\i}nia $n$}
\cm{vim -t $t$}{v\'es al tag $t$}
\cm{vim -p $\langle fitxers\rangle$}{obre els fitxers en pestanyes}
\cm{vim -o $\langle fitxers\rangle$}{obre en finestres, horitzontalment}
\cm{vim -O $\langle fitxers\rangle$}{obre en finestres, verticalment}

% Footer
\vfill \hrule\smallskip
%{\smallrm This card may be freely distributed under
%the terms of the GNU general public licence ---
%Copyright \copyright\ {\oldstyle 2003} by Laurent Gr\'egoire
%$\langle${\smalltt laurent.gregoire@icam.fr}$\rangle$ --- v1.5 ---
%The author assumes no responsibility for any errors on this card.
%The latest version can be found at
%{\smalltt http://tnerual.eriogerg.free.fr/}}
{\smallrm Aquest document es pot distribuir lliurement sota
els termes de la llic\`encia p\'ublica general GNU ---
Copyright \copyright\ {\oldstyle 2003} Laurent Gr\'egoire
$\langle${\smalltt laurent.gregoire@icam.fr}$\rangle$ --- v1.5 ---
L'autor no assumeix cap responsabilitat pels errors d'aquest document.
L'\'ultima versi\'o \'es a {\smalltt http://tnerual.eriogerg.free.fr/}}

\def\translator{Enric Meinhardt-Llopis}
% Ending
\supereject
\if L\lr \else\null\vfill\eject\fi
\if L\lr \else\null\vfill\eject\fi
\bye

% EOF
