%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Rychla reference k nekterym prikazum programu ViM % % http://vim.org % % % % Martin Bruchanov -- bruxy at regnet dot cz % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \language[cz] \mainlanguage[cz] \enableregime[utf] % latin2 \pdfminorversion=4 \setupbodyfont[10pt] % \setuppapersize[A4, portrait][A3, landscape] % A3, A4, A5, A6; landscape \setuparranging[2SIDE] % zmena stranek pro vyrobu knizky, % 2SIDE -- dve stranky na jeden list viz setuppapersize \pdfinfo{ /Title (Rychla reference k nekterym prikazum programu ViM) /Author (Martin Bruchanov) /Subject (ukazka) /CreationDate (10.06.2007) /ModDate (\currentdate) /Producer (ConTeXt) } % Rozmery stranky \setuplayout[% width=200mm,% height=286mm,% header=0mm, % footer=0mm, % topspace=5mm, % leftmargin=0mm, % rightmargin=0mm, % leftedge=0mm, backspace=5mm, ] %\showframe % ukaze nastaveni vzhledu stranky %\showgrid %\showlayout \definefont[TitleFont][RegularBold sa 2.5] \def\ShadowOffset{-2.5pt} \define[1]\TitleShadow{\rlap{% \color[lightgray]{#1}}\kern\ShadowOffset\lower\ShadowOffset\hbox{#1}% } % Nastavevni nadpisu \setuphead[title][ before={\blank[2*small]}, textcommand=\TitleShadow, % style=\TitleFont, % align=center, after={\nowhitespace}, ] \definefont[SectionFont][RegularBold sa 1.35] \define[1]\Cislovani{{#1}.} % tecka za cislem kapitoly \setuphead[section][ style=\SectionFont, %% % textcommand=\SectionLook, numbercommand=\Cislovani, before={\blank[small]}, after={\nowhitespace}, ] \definefont[SubsectionFont][RegularBold sa 1.1] \setuphead[subsection][ % style=\SubsectionFont, % numbercommand=\Cislovani,% before={\blank[none]},% % after={\blank[1*small]}] after=\nowhitespace] % mezery mezi odstavci \setupwhitespace[none] % velikost odsazeni \setupindenting[none] % none, small, medium, bix, next, first, [rozmer] % Pouziti barev \setupcolors[state=start] \setupcolor[rgb] % Nastaveni seznamu s odrazkami %\setupinterlinespace[line=3ex] \setupitemize[1][packed,joinedup][width=10pt] % joinedup -- zadne mezery pred a za \setuplines[indenting=always,% before=\nowhitespace,joinedup] %beforehead={\nowhitespace}] % Vypnuti popisku \setupcaptions[location=none] % nezery pred a za plovoucimi objekty \setupfloats[spacebefore=,spaceafter=] % vlastnosti verbatim \setuptyping[typing][before={\blank[-.5mm]},after={\blank[2mm]}] % shadowed key stroke \startuniqueMPgraphic{shadow} fill OverlayBox cornered 3pt shifted (0.8pt,-0.8pt) withcolor .1white ; fill OverlayBox cornered 4pt withcolor \MPcolor{\overlaycolor}; setbounds currentpicture to OverlayBox ; \stopuniqueMPgraphic \defineoverlay [shadow] [\uniqueMPgraphic{shadow}] % macro #1 = color of key \def\key#1{\inframed[frame=on, corner=round, background=shadow, backgroundcolor=#1, bottomframe=on, radius=1.5pt, % offset=-0.8pt, % height=1.1em, % % height=\lineheight, % backgroundoffset=0pt]} %%%%%%%%%% Prikazy \def\dd{{\tt ..}} \def\bod{{\it bod}} \def\ods{\hskip2em{}} \def\pods{\hskip1em{}} \def\ES{{\sc Esc}{}} \def\DEL{{\sc Del}{}} \def\BS{{\sc BackSpace}{}} \def\IN{{\sc Ins}{}} \def\TT{{\sc Tab}{}} \def\PD{{\sc PageDown}{}} \def\PU{{\sc PageUp}{}} \def\EN{{\sc Enter}{}} \def\SH{{\sc Shift}{}} \def\CT{{\sc Ctrl}{}} \def\AT{{\sc Alt}{}} \def\HM{{\sc Home}{}} \def\EN{{\sc End}{}} % v dolnim indexu bude nazev rezimu jako Sans-Serif \def\sssymbol#1{\hbox{\switchtoformulabodyfont[ss,script] #1}} \definehspace[odsaz][.15em] %\definehspace[odsaz][0pt] % Command % #1 keyboard imput % #2 editation mode type % #3 color \def\mez{\hspace[odsaz]} \definecolor[darkgray][r=0.4,g=0.4,b=0.4] \def\COMMAND#1#2#3{\key{#3}{\mez{\tt #1}\color[darkgray]{\tfx\ss \low{#2}}\mez}} % regular grey \def\C#1{\key{gray}{\mez{\tt #1}\mez}} % color for each environment \definecolor[command][r=1,g=0.5,b=0.5] \definecolor[exkey][r=0.5,g=1,b=1] \definecolor[edit][r=1,g=1,b=0.5] \definecolor[visual][r=0.5,g=1,b=0.5] \def\CC#1{\COMMAND{#1}{C}{command}} % command \def\CV#1{\COMMAND{#1}{V}{visual}} % visual \def\CE#1{\COMMAND{#1}{E}{edit}} % edit \def\CSK#1{\COMMAND{#1}{ex}{exkey}} % shortcuts for ex-mode \def\DF{\dotfill{}} \def\U#1{\underbar{#1}} \def\exframe{\inframed[frame=off, background=color, frameoffset=0.5pt, % % radius=2.5pt, % % height=broad, % % strut=yes, % offset=none, offset=-1pt, backgroundcolor=exkey, backgroundoffset=0pt ]} \def\CS#1{\exframe{\,\tt :#1\,}} \def\a{$\approx$ {}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \starttext \startcolumns[n=2] \title{Vi IMproved} \placeintermezzo[here,none]{}{ \framed[frame=off,bottomframe=on,frameoffset=1mm]{ \startalignment[middle] {\tfx \copyright{} \date[][year] Martin Bruchanov, {\tt bruxy@regnet.cz}} \stopalignment } } \section{Základní ovládání a konvence} \startitemize[1] \item {\bf Kombinace kláves}~-- několik kláves stisknutých současně, např. \CE{\CT+A} ve skutečnosti znamená \CE{\CT+\SH+a}. \item {\bf Sekvence kláves}~-- několik kláves či kombinací stisknutých po sobě, např. \CE{\CT+ww} znamená stisk kombinace \C{\CT+w} a poté ještě klávesy \C{w}. \item {\bf Pracovní režim}~-- u kláves je zobrazen vlevo dole: \startitemize \item \color[command]{\blacksquare}~{\ss C}~-- základní příkazový režim, \CE{\ES}, \item \color[edit]{\blacksquare}~{\ss E}~-- vkládací, pro psaní textu \CC{\IN}, \CC{i}, \item \color[visual]{\blacksquare}~{\ss V}~-- vizuální, označování bloků textu \CC{v}/\CC{V}, \item \color[exkey]{\blacksquare}~{\ss ex}~-- ovládání na příkazovém řádku ({\em ex}-mode) \CC{:}. \stopitemize \item Opakovat příkaz $n\times$ lze napsáním čísla před příkazem, např. \CC{5x} vymaže 5 znaků od pozice kurzoru. Volba \CS{set \U{s}how\U{c}md} ukazuje příkazovou sekvence vpravo dole. %\item Vynutit si příkaz je možné pomocí {\tt !}, např. \CS{w!} si vynutí uložení souboru, \CS{q!} ukončení ViMu. \item Nápověda: \CS{help {\em téma}}, doplňování příkazů pomocí \CSK{Tab}. \item Podobné příkazy používají stejné klávesy, např. \CC{f}\,/\,\CC{F}, \CC{t}\,/\,\CC{T} (viz dále). Liší se směrem nebo rozsahem působení. \item Opakování posledního:\DF příkazu \CC{.}, makra \CC{\type{@@}} \item {\bf O krok zpět:}\DF \CC{u} \a \CS{\U{u}ndo}, vrátit \CC{\CT+r}\,/\,\CS{\U{red}o} \item Zapínání a vypínání určité volby umožňuje \CS{set {\em volba}} a \CS{set no{\em{}volba}}. Příkaz \CS{set} zobrazí aktuální volby. \item Zkrácený zápis:\DF \CS{\U{se}t \U{i}gnore\U{c}ase} \a\CS{se ic} \item {\bf Adresování řádků} {\em ex}-příkazů lze nastavit pomocí: \startitemize \item \CS{$x$příkaz}\DF provede na řádku $x$ \item \CS{$x$,$y$příkaz}\DF od řádku $x$ do řádku $y$ \item \CS{.,\$příkaz}\DF od aktuální pozice do konce \item \CS{\%příkaz} \a \CS{1,\$příkaz}\DF pro celý soubor \item \CS{.,+$x$přík} \a $x$\CS{přík}\DF od akt. pozice po dalších $x$ řád. \item \CS{.,\$$-x$}\DF od aktuální pozice do $x.$ řádku od konce \item \CS{/{\em vzor\low{1}}/,/{\em vzor\low{2}}/}\DF od prvního výskytu řádky s {\em vzor\low{1}} do prvního výskytu {\em vzor\low{2}} \stopitemize \item Více {\em ex}-příkazů najednou:\DF \CS{příkaz\low{1} \| příkaz\low{2}} \item Porovnání dvou souborů:\DF {\tt vimdiff {\em soubor\low{1}} {\em soubor\low{2}}} \stopitemize \section{Editování a ukládání} \startitemize \item Editovat:\DF \CS{\U{e}dit {\em soubor}} \item Vytvoř prázdný soubor:\DF \CS{\U{ene}w} \item Vložit soubor na pozici kurzoru:\DF \CS{\U{r}ead {\em soubor}} \item Vlož výpis systémového {\em příkazu}:\DF \CS{\U{r}ead !{\em příkaz}} \item Ulož/připoj soubor:\DF \CS{\U{w}rite {\em název}}\,/\,\CS{w >> {\em název}} \item Ulož/připoj řádky $n$ až $m$:\DF \CS{$n$,$m$w {\em název}}\,/\,\CS{$n$,$m$w>> {\em název}} \item Uložení a odchod:\DF \CS{wq}, vynucené \CS{wq!} \item Odchod bez uložení:\DF \CS{q!} \a\CC{ZQ} \item Odchod a uložení pokud byla změna:\DF \CS{x} \a \CC{ZZ} \item Změnit jméno právě editovaného souboru:\DF \CS{f {\em jméno}} \item Psát před/za: znak\DF \CC{i}\,/\,\CC{a}, řádek\DF \CC{I}\,/\,\CC{A} \item Začni nový řádek nad/pod kurzorem:\DF \CC{O}\,/\,\CC{o} \item Přepiš znak \CC{r}, slovo \CC{cw}, řádek \CC{cc}, text \CC{R} \a \CC{\IN\IN} \item Smaž znak/řádek a pokračuj v editaci:\DF\CC{s}\,/\,\CC{S} \stopitemize \subsection{Pohyb v souboru} \startitemize \item Kurzor:\DF \CC{$\rightarrow$} $\approx$ \CC{l}, \CC{$\leftarrow$} $\approx$ \CC{h}, \CC{$\uparrow$} $\approx$ \CC{k}, \CC{$\downarrow$} $\approx$ \CC{j} %\item Délkový registr umístění: \CS{set \U{s}cr\U{o}lloff={\em řádků}}. \item Stránkování:\DF \CC{\CT+f} \a\CE{\PU}\,/\,\CC{\CT+b} \a\CE{\PD} \item Poloviční stránkování nahoru/dolu:\DF \CC{\CT+u}\,/\,\CC{\CT+d} \item Skok na $n$-tý řádek:\DF \CS{$n$} \a \CC{$n$G} , na poslední \CS{\$} \a \CC{G} \item Skok na procentuální řádkovou pozici:\DF \CC{{\em n}\%} \item Zobraz aktuální číslo řádku:\DF \CC{\CT+g}, \CS{set \U{nu}mber} %number \item Zobraz počet řádků souboru:\DF \CS{=} \item Skok na Bytovou pozici:\DF \CS{\U{go}to $n$} \item Skok v řádku před znak {\em a} vpřed/vzad:\DF \CC{t\em{a}}\,/\,\CC{T\em{a}} \item Skok v řádku na znak {\em a} vpřed/vzad:\DF \CC{f\em{a}}\,/\,\CC{F\em{a}} \item Zopakuj poslední řádkové hledání vpřed/vzad:\DF \CC{;}\,/\,\CC{,} \item Jdi na začátek dalšího/předchozího slova:\DF \CC{w}\,/\,\CC{b} \item Jdi na konec slova:\DF \CC{e},\DF zahrne interpunkce \CC{E} \item Jdi na deklaraci:\DF \CC{gd} \item Jdi na začátek/konec odstavce:\DF \CC{\{}\,/\,\CC{\}},\DF bloku: \CC{[\{}\,/\,\CC{]\}} \item Jdi na začátek/konec řádku:\DF \CC{\HM} \a\CC{\type{^}}\,/\,\CC{\EN} \a\CC{\$} \item Skoč na další/předchozí větu:\DF \CC{)}\,/\,\CC{(} \item Jdi na další/předchozí řádek:\DF \CC{\EN} \a\CC{+}\,/\,\CC{-} \item Jdi na sloupec:\DF první \CC{0} \a\CC{\type{|}}; {\em n}-tý \CC{{\em n}\type{|}} \item Skoč na párovou závorku:\DF \CC{\%} \item Vypiš pozici a celkové počty řádků, znaků, atd.: \CC{g\CT+g} \stopitemize \subsubsection{Značení pozice} \startitemize \item Vlož neviditelnou značku {\em a}:\DF \CC{ma} \item Skoč na značku {\em a}:\DF \CC{'a} \item Vypiš značky:\DF \CS{marks} \item Vymaž značku {\em a}:\DF \CS{\U{delm}arks {\em a}} % delmarks \item Zpracuj text od značky {\em a} do {\em b}:\DF \CS{'a,'b {\em příkaz}}, např. \CS{'a,'b !sort} setřídí text externím příkazem \stopitemize \subsection{Mazání, přesuny a kopírování textu} \startitemize \item Mazání ukládá automaticky do schránky (pro přesunování) \item Vymaž: znak \CC{x} \a \CC{\DEL}; předchozí znak \CC{X} \a \CC{d$\leftarrow$} \a \CC{dh}, \CE{\CT+h} \a \CE{\BS}; slovo \CC{dw} \a\CE{\CT+w}; řádek \CC{dd} \item Vymaž až k párové závorce:\DF \CC{d\%} \item Vymaž do konce/začátku věty:\DF \CC{d)}/\CC{d(} \item Vymaž zbytek řádku:\DF \CC{D} \a \CC{d\type{$}} \item Vymaž od pozice kurzoru na začátek:\DF \CC{d0} \a\CC{d^} \item Spojení řádků: \DF \CC{J} přidá mezeru,\DF \CC{gJ} bez mezery %\item Spoj s následujícím řádkem, bez mezery:\DF \CC{gJ} \item Kopíruj do schránky:\DF celý řádek \CC{Y} \a \CC{yy}, slovo \CC{yw} \item Kopíruj do začátku/konce řádku:\DF \CC{y0}\,/\,\CC{y\$} \item Více schránek: stisk \CC{"{\em k}\ldots} před příkazem uloží text do schránky {\em k}. Např. \CC{"kyy} uloží řádek do \type{k} \item Vlož obsah poslední použité schránky nebo poslední vymazaný text: za \CC{p}, před \CC{P} kurzor, \CC{"kpp} vloží schránku \type{k} \item Speciální schránky: \type{"%} -- právě editovaný soubor, \type{"/} -- poslední hledaný text,\ldots \item Zobraz obsah schránek:\DF \CS{\U{reg}ister {\em schránka}} %register \item Prohoď dva následující znaky/řádky:\DF \CC{xp}\,/\,\CC{ddp} \item {\em ex}-režim: mazání \CS{d}, přesun \CS{m}, kopírování \CS{co} \a \CS{t} \item \CS{10,20m0} -- přesun řádky 10--20 na začátek (0) \item \CS{.,+5d a} -- vymaž následujících 5 řádek a ulož je do reg. {\em a} \stopitemize \subsection{Formátování} \startitemize \item Nastavení šířky řádku:\DF \CS{set \U{t}ext\U{w}idth=$n$} % textwidht \item Nastavení zalamování:\DF \CS{set wrap} \item Zarovnání:\DF \CS{ce} střed, \CS{ri} pravo, \CS{le} levo \item Zformátuj řádek:\DF \CC{gqq} \item Zformátuj odstavec:\DF \CC{gqap} (kurzor dá na konec), \CC{gwap} (kurzor stojí) \item Obrátí velikost písmene:\DF \CC{\type{~}}, celé řádky \CC{g\type{~}\type{~}} \item Celý řádek na velká/malá:\DF \CC{gUU}\,/\,\CC{Vu} \a \CC{guu}\,/\,\CC{VU} \item Celý soubor na velká/malá pismena:\DF \CC{gggUG}\,/\,\CC{ggguG} \item Celý řádek/soubor zakóduje {\em ROT13}:\DF \CC{g??}\,/\,\CC{ggg?G} \stopitemize \subsubsection{Odsazování} \startitemize \item Odsaď řádek:\DF \CC{>>}, \CE{\CT+t} o \CS{set \U{s}hift\U{w}idth=$n$} %shiftwidth \item Zmenši odsazení řádku:\DF \CC{<<}, \CE{\CT+d} \item Tabulátor:\DF \CE{\TT} \a \CE{\CT+i} %\item Přidej/uber odsazení o jednu úroveň:\DF \CE{\CT+t}\,/\,\CE{\CT+d} \item Odsaď řádek jako předchozí:\DF \CC{==} \item Odsaď blok relativně k umístění:\DF \CC{=a\{} \item Předělej odsazení celého souboru:\DF \CC{gg=G} \stopitemize \subsection{Doplňování} \startitemize \item Editované slovo před/za kurzorem:\DF \CE{\CT+p}\,/\,\CE{\CT+n} \item Název souboru v pracovním adresáři:\DF \CE{\CT+x \CT+f} \item Název adresáře:\DF \CE{\CT+x \CT+d} \item Celý řádek:\DF \CE{\CT+x \CT+l} \item Slovo ze slovníku:\DF \CE{\CT+x \CT+k} \item Systémový příkaz (čte \type{$PATH}):\DF \CE{\CT+x \CT+v} \item Zvětší/zmenší číslo pod kurzorem:\DF \CC{\CT+a}\,/\,\CC{\CT+x} \item Jméno právě editovaného souboru:\DF \CE{\CT+r\%} \stopitemize \subsubsection{Doplňování na {\em ex}-příkazový řádek} \startitemize \item Vlož obsah schránky {\em a}:\DF \CSK{\CT+r{\em a}} \item Vlož slovo pod kurzorem:\DF \CSK{\CT+r \CT+a} \item Zruš příkaz:\DF \CSK{\CT+u} \stopitemize \subsection{Vkládání zvláštních znaků} \startitemize \item Vlož ASCII znak:\DF \CE{\CT+v\,{\em kód}\,\EN} \item Zobraz ASCII/UTF-8 znaku pod kurzorem:\DF \CC{ga}\,/\,\CC{g8} \item Potlač řídící znak, např. \C{\TT} (\type{^I}):\DF \CE{\CT+v\,\TT} \item Tabulka dvojkódů Unicode znaků:\DF \CS{\U{dig}raphs} %digraphs \item Vlož dvojkód:\DF\CE{\CT+k\,$K_1$\,$K_2$} \item Dvojkódy: ±\,\type{+-}\hfill °\,\type{DG}\hfill ×\,\type{*X}\hfill ÷\,\type{-:}\hfill –\,\type{-N}\hfill —\,\type{-M}\hfill „\,\type{:9}\hfill “\,\type{:6} \item Definuj dvojkód \type{.3} pro „…“ (U+2026):\DF \CS{dig .3 8230} \stopitemize %Vložení nenapsatelného ASCII znaku, např. \TT: \CE{\CT+v\TT}, objeví se %dvojznak \type{^I}, kombinace \CE{\CT+v{\em číslo}\EN} vloží znak s daným ASCII %kódem. %Některé nenapsatelné znaky v kódování UTF-8 je možné psát pomocí {\em %digraphs}, dvojznakové kombinace, tabulku zobrazí \CS{digraphs}, znak se vkládá %\CE{\CT+k $K_1$ $K_2$}. \section{Hledání a nahrazení} \startitemize \item Ignorovat velikost:\DF \CS{set \U{i}gnore\U{c}ase}, opak \CS{set noic} \item Hledat vpřed/vzad:\DF \CC{/{\em slovo}}\,/\,\CC{?{\em slovo}} \item Opakuj poslední hledání:\DF \CC{/}\,/\,\CC{?} \item Ignoruje velikost písmen:\DF \CC{/\backslash{}c{\em slovo}} \item Skok na další výskyt nálezu:\DF \CC{n} vpřed, \CC{N} vzad \item Nalezení slova pod kurzorem:\DF \CC{\#} vzad,\DF \CC{*} vpřed \item Hledej podle kódu ASCII „M“:\DF \type{\%d77}, \type{\%x4d}, \type{\%o0115} \item Vyhledej Unicode znak „$\alpha$“ (U+03B1):\DF \type{\%u03b1} \item Nahrazení:\DF \CS{\U{s}ubstitute/from/to/{\em příznaky}}, zkr. \CS{s} \item Opakuj poslední nahrazení:\DF \CS{s} \a\CS{s\type{//~/}} \item Oddělovač \type{/} může být libovolný jiný znak kromě \type{\}, \type{"} a \type{|} \item Příznaky:\DF {\tt c}~-- potvrzení, {\tt g}~-- v celém řádku, {\tt p}~-- vypisuj, bez příznaku nahrazuje pouze první výskyt %\item Na řádcích, kde je {\em regex} proveď {\em ex-příkaz}:\DF \CS{g/{\em regex}/{\em příkaz}} %\item Najdi a nahraď:\DF \CS{g/Windows/s//Linux/g} %\item Příznaky: {\em žádný}~-- nahrazuje první výskyt, \type{g}~-- na celém řádku, \type{c}~-- potvrzovat \item Zruší zvýraznění:\DF \CS{\U{noh}lsearch} % nohlsearch \item Prohledání více souborů: \CS{\U{vim}grep /{\em vzor}/g {\em s}$_1$ {\em s}$_2$ \ldots {\em s}$_n$} \item Proveď příkaz na řádku s výskytem:\DF \CS{\U{g}lobal/{\em vzor}/{\em příkaz}} \item Proveď příkaz, tam kde není vzor:\DF \CS{g!/{\em vzor}/{\em příkaz}} \stopitemize \subsection{Regulární výrazy} \startitemize \item Začátek/konec: řádku \type{^}\,/\,\type{$}, slova \type{\<}\,/\,\type{\>}, souboru \type{\%^}\,/\,\type{\%$} \item Předchozí hledaný výraz/náhrada: \DF \type{&}\,/\,\type{~} \item Zástupný symbol za jeden znak:\DF \type{.} (tečka) \item Nebo/zároveň :\DF \type{\|}\,/\,\type{\&} \item Potlačí následující speciál. symbol:\DF \type{\.}, \type{\&}, \type{\$}, \type{\^}, \type{\\}, \type{\*} \item Atom:\DF \type{\(}vzorek\type{\)} \item $N$-tý podvýraz:\DF {\tt \type{\}{\em N}},\DF první \type{\(}vzorek\type{\)} = \type{\1} \item Rozsah:\DF \type{[abcd]} \a \type{[a-d]}, \type{[a-zA-Z]} \a \type{\a}, \type{[0-9]} \a \type{\d} \item Ignorované znaky:\DF \type{[^abcd]} \a \type{[^a-d]} \item Žádný nebo násobný výskyt {\em z}:\DF {\tt {\em z}\type{*}} \a{\tt{\em z}\type{\{0,\}}} \item Jeden nebo násobný výskyt {\em z}:\DF {\tt {\em z}\type{\+}} \a{\tt{\em z}\type{\{1,\}}} \item Jednou nebo nulakrát:\DF {\tt {\em z}}\type{\?} \a{\tt{\em z}\type{\{0,1\}}} \item Opakování {\em z}:\DF \type{z\{n\}} přesně $n\times$, \type{z\{n,\}} minimálně $n$ výskytů, \type{z\{n,m\}} min. $n$ a max. $m$ výskytů %\item Obsahuje %Třídy znaků: \type{[:alnum:]} %[:alpha:] [:ascii:] [:blank:] [:digit:] %{\bf Příklady:} \stopitemize \section{Sbalování částí textu (\CS{help folding})} \startitemize \item Sbal text:\DF \CC{zf}, označený \CV{zf} \item Jdi na začátek/konec foldu:\DF \CC{[z}\,/\,\CC{]z} \item Rozbal pod kurzorem:\DF \CC{zo}, rekurzivně \CC{zO} \item Rozbal/zavři všechny:\DF \CC{zR}\,/\,\CC{zM} \item Přepínání sbal-rozbal:\DF \CC{za}, rekurzivně \CC{zA} \item Zvýraznění sbalených částí:\DF \CS{set \U{f}ol\U{dc}olumn=5} %foldcolumn \stopitemize \section{Editace více souborů, okna a záložky} \subsection{Více souborů (editačních bufferů)} \startitemize %Spustit ViM, kde parametrem jsou názvy několika souborů. \item Spuštění:\DF {\tt vim soubor\low{1} soubor\low{2}\ldots} \item Vypiš buffery:\DF \CS{ls} \a \CS{files} (jsou označeny čísly) \item Přepni na další/předchozí soubor:\DF \CS{\U{n}ext}\,/\,\CS{\U{p}rev} % next prev \item Přepni na první/poslední soubor: \CS{\U{rew}ind} \a \CS{\U{fir}st}\,/\,\CS{\U{la}st} % rewind first \item Proveď hromadně {\em příkaz} pro všechny soubory: \CS{bufdo {\em příkaz}} \stopitemize \subsection{Okna} \startitemize \item Nové okno:\DF \CS{new} \a \CC{\CT+wn} \item Rozpůlí okno:\DF \CS{\U{sp}lit} \a \CC{\CT+ws} %split \item Rozpůlí okno vertikálně:\DF \CS{\U{vs}plit} \a \CC{\CT+wv} %vsplit \item Zavře okno:\DF \CS{\U{clo}se} \a \CC{\CT+wc} \item Zavře vše až na aktivní:\DF \CS{\U{on}ly} \a \CC{\CT+wo} \item Přeskočí do dalšího okna:\DF \CC{\CT+ww} \item Zmenší/zvětší okno o $n$ řádků:\DF \CC{\CT+w$n$-}\,/\,\CC{\CT+w$n$+} \item Zmenší/zvětší okno o $n$ sloupců:\DF \CC{\CT+w$n$\type{<}}\,/\,\CC{\CT+w$n$\type{>}} \item Srovná rozměr všech oken:\DF \CC{\CT+w=} \item Hromadný:\DF zápis \CS{\U{wa}ll}, odchod \CS{\U{qa}ll}, \CS{\U{wqa}ll} \item Proveď hromadně {\em příkaz} pro všechna okna:\DF \CS{windo {\em příkaz}} \stopitemize \subsubsection{Pohyb v okně} \startitemize \item Skok na řádek okna:\DF horní \CC{H}, střed \CC{M}, dolní\CC{L} \item Skok na $n$. řádek shora/zdola:\DF \CC{$n$H}/\CC{$n$L} \item Nastav aktuální řádek:\DF nahoru \CC{z\EN}, střed \CC{z.}, dolu \CC{z-} \item Posuň okno nahoru/dolu: o řádek \CC{\CT+e}\,/\,\CC{\CT+y}, stránku \CC{\CT+b}\,/\,\CC{\CT+f}, půlstránku \CC{\CT+u}\,/\,\CC{\CT+d} \item Překresli okno bez skrolování:\DF \CC{\CT+l} \stopitemize \subsection{Záložky} \startitemize \item Příkaz: {\tt vim -p $s_1$, $s_2$ \ldots} otevře dané soubory v záložkách \item Vytvoř/zavři záložku:\DF \CS{\U{tab}n\U{e}w}\,/\,\CS{tabc} \item Zavři vše, kromě aktivní:\DF \CS{tabo} \item Přepni na další/předchozí:\DF \CS{tabn} \a \CE{\CT+\PD}\,/\,\CS{tabp} \a \CE{\CT+\PU} \item Přesuň za záložku $n$:\DF \CS{tabm $n$} \item Proveď hromadný {\em příkaz}:\DF \CS{tabdo {\em příkaz}} \item Vzhled záložek:\DF \CS{set \U{ta}b\U{l}ine} %tabline \stopitemize \section{Vizuální režim} \startitemize \item Výběr:\DF znaků \CC{v}, řádky \CC{V}, kurzorem se označí rozsah \item Blokový výběr textu:\DF \CC{\CT+V} \item Převod na velká/malá písmena:\DF \CV{U}\,/\,\CV{u} \item Označ:\DF slovo \CV{aw}, ()/\{\} blok \CV{ab}\,/\,\CV{aB}, bez závorek \CV{ib}\,/\,\CV{iB}; XML blok se značkami \CV{at}, jen uvnitř \CV{it} \item Proveď {\em příkaz} v označeném rozsahu:\DF \CS{'<,'> {\em příkaz}} \stopitemize \section{Zkratky, mapování kláves a makra} \startitemize \item Definuj zkratku:\DF \CS{\U{ab}reviate {\em zkratka} {\em rozvoj}} \item Zkratky pro editační/ex-režim:\DF \CS{\U{ia}bbrev}\,/\,\CS{\U{ca}bbrev} % iabbrev cabbrev \item Vylistuj/vymaž zkratky:\DF \CS{ab}\,/\,\CS{unab {\em zkratka}} \item Mapuj klávesu {\em x}:\DF \CS{map {\em x} {\em příkazy}} \item Mapování dle režimu: \CS{map} \CS{\U{im}ap} \CS{\U{cm}ap} \CS{\U{nm}ap} \CS{\U{vm}ap} \item Mapuj kl. pro vkládací režim:\DF \CS{map! {\em x} {\em příkazy}} \item Vylistuj mapování:\DF \CS{map}/\CS{map!} \item Vymaž mapování:\DF \CS{\U{unm}ap {\em x}}/\CS{\U{unm}ap! {\em x}} \item Zapiš makro do registru {\em a}:\DF \CC{q{\em a}} \item Ukončení definice makra:\DF \CC{q} \item Proveď makro v registru {\em a}:\DF \CC{\type{@}{\em a}} \item Proveď poslední volané makro:\DF \CC{\type{@@}} \item Spusť makro {\em a} jako {\em ex}-příkaz:\DF \CS{@{\em a}} \stopitemize %\section{Kontrola pravopisu (ViM$^{7+}$)} \section{Kontrola pravopisu} %ViM umí zvýraznit překlepy, je nutné mu dodat slovník (např. z {\em OpenOffice.org} [\type{cz_CZ.aff}, \type{cs_CZ.dic}]), ze kterého si vygeneruje vnitřní binární reprezentaci slovníku. % http://ftp.linux.cz/pub/localization/OpenOffice.org/devel/Czech/spell_checking/cs_CZ.zip % unzip -x cs_CZ.zip cs_CZ.aff cs_CZ.dic % vim -e -s << EOF % :mkspell cs cs_CZ % :!cp cs.utf-8.spl $VIMRUNTIME/spell   % EOF \startitemize %\item Vytvoření slovníku:\DF \CS{mkspell cs cs\_CZ} \item Zapnutí slovníku:\DF \CS{set spell \U{sp}e\U{l}llang=cs,en} %spelllang \item Najdi další/předchozí překlep:\DF \CC{]s}\,/\,\CC{[s} %\item Nabídni podobné tvary:\DF \CE{\CT+xs} \item Přidej do slovníku slov pod kurzorem:\DF \CC{zg} \item Přidej dočasně do slovníku:\DF \CC{zG} \item Označ slovo jako špatné:\DF \CC{zw}, dočasně \CC{zW} \item Nabídne slovo k překlepu:\DF \CC{z=} \item Nahraď slovo první variantou:\DF \CC{1z=} \stopitemize \section{Podpora programátorů} \startitemize \item Spustí {\tt make}:\DF \CS{\U{mak}e} %make \item Skoč na další/předchozí chybu:\DF \CS{\U{cp}revious}\,/\,\CS{\U{cn}ext} \item Vypiš všechny chyby:\DF \CS{\U{cl}ist} \item Přidej okno se seznamem chyb:\DF \CS{cope} %\item Zobrazení čísel řádků: \CS{set \U{nu}mber} %number %\item Obarvení syntaxe: \CS{set syntax} \stopitemize \section{Ostatní} \startitemize \item Spusť shell:\DF \CS{shell} \item Otevři man. stránku slova pod kurzorem:\DF \CC{K} \item Otevři soubor pod kurzorem:\DF \CC{gf} %Překreslit obsah okna: \CC{z}. \item Zástupný znak editovaného souboru \type{%}, např. \CS{!context \%} přeloží právě editovaný soubor Con\TeX{}tem \stopitemize %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \stopcolumns \stoptext