Nej... VIM pluginy (2)

8. 8. 2002
Doba čtení: 4 minuty

Sdílet

Další hromada zajímavých pluginů pro textový editor VIM. Čekají nás mimo jiné pluginy pro psaní HTML, nástroje pro programátory a na závěr i jedna hra.
Mini Buffer Explorer

Mini Buffer Explorer je něco, co mi dlouho chybělo. Na Internetu najdete pluginů podobných tomuhle několik, ale ze všech, které znám, je tento nejlepší (a s nejméně chybami). Pokud editujete zároveň několik souborů, otevře Mini Buffer Explorer úplně nahoře malé okno se seznamem bufferů. Okamžitě tak vidíte, jaké číslo má který z nich, a ihned se můžete bez zdržování pomocí :b<číslo> do některého přepnout.

Mini Buffer Explorer

Stahujte zde.

V určitých situacích je vhodné Mini Buffer Explorer vyřadit z činnosti (například při konverzi syntakticky zvýrazněného souboru na HTML dělá Mini Buffer Explorer problémy: na HTML se místo zdrojového souboru převede obsah samotného Buffer Exploreru). Definoval jsem si proto dvě mapování: <F10> pro zapnutí a <SHIFT-F10> pro vypnutí Mini Buffer Exploreru:

map <F10> :call Enable_minibuf()<CR>
map <S-F10> :call Disable_minibuf()<CR>

function! Enable_minibuf()
  let g:miniBufExplorerAutoUpdate = 1
  MiniBufExplorer
endfun

function! Disable_minibuf()
  MiniBufExplorer
  bd

  let g:miniBufExplorerAutoUpdate = 0
endfun

Chcmdmod

Chcmdmod je jednoduchý plugin zajímavě rozšiřující chování VIMu. Dovoluje změnu příkazového režimu bez ztráty rozepsaného příkazového řádku. Pomocí kombinací kláves ^X/, ^X: a ^X? se můžete plynule uprostřed psaní příkazu přepínat mezi /, : nebo ? režimy.

Stahujte zde.

EasyHtml

Docela šikovný nástroj je také EasyHtml. Nainstalujete-li si jej, nebudete si už muset při editaci HTML souborů a kaskádových stylů (CSS) pamatovat žádné atributy tagů či CSS vlastností! EasyHtml poskytuje mechanismus výběru položek tagů z jednoduchého okna. Funguje to takhle:

  1. Kurzorem najedete na nějaký HTML tag nebo CSS vlastnost.
  2. Stisknete klávesu F3, čímž se vám otevře nové okno se seznamem všech atributů zvoleného tagu.
  3. Pomocí kurzorových kláves si vyberete atribut, který chcete do tagu přidat, a stisknete Enter.
  4. Vybraný atribut se do tagu automaticky doplní a kurzor se nastaví mezi uvozovky, takže můžete rovnou psát jeho hodnotu.
  5. Esc nebo q zavře okno EasyHtml bez vložení atributu.

EasyHtml barevně (červeným podsvícením) rozlišuje atributy, které WWW Consorcium ruší (prohlásilo za deprecated) – co se týče HTML a CSS, jsou znalosti uchované v EasyHtml opravdu encyklopedické :-).

Ukázka funkce pluginu EasyHtml

Stahujte zde.

HTML-macros

Dalším velice užitečným pluginem při tvoření HTML stránek je skript HTML-macros. Definuje desítky logicky pojmenovaných maker, na která se velice rychle zvyká a která úžasně urychlí psaní. Tak například klávesa F1 je předefinovaná tak, že hledá v předcházejícím textu první neuzavřený HTML tag a na místo kurzoru vloží jeho uzavírací párovou značku. Dále je zde sada maker ;něco, které do textu vkládají páry HTML tagů s kurzorem mezi nimi. Tak například ;1 vloží do textu "<h1></h1>, ;i

tag <img src…> a podobně. Za velmi šikovné považuji to, že taková makra fungují inteligentně i na označeném bloku textu.

Stahujte zde.

Info

Zkuste hádat, co umí tenhle plugin. Všichni z vás, kteří si myslíte, že to je schopnost zobrazování info stránek přímo v bufferu VIMu, máte naprostou pravdu. Plugin Info obohacuje příkazový repertoár editoru o stejnojmennou funkci, která umí načíst a barevně zvýraznit nápovědné stránky systému

info. Brousí se po nich stejně jako po nápovědě VIMu.

Stahujte zde.

GLib

Pokud občas něco programujete v jazyku C a s knihovnou GLib, padne vám tento skript do noty. Je to totiž VIM syntax file, soubor s definicí zvýrazňování syntaxe datových typů a funkcí GLibu.

Stahujte zde.

Increment

Využití služeb pluginu Increment představuje jednu z cest, jak rychle vytvořit vzrůstající nebo klesající posloupnost čísel s využitím módu vizuálního bloku.

Předvedu názorně: Představte si, že editujete nějaký céčkovský soubor a potřebujete vytvořit fragment kódu, který by naplňoval nějaké pole jakýmisi hodnotami:

moje_pole[1] = 2;
moje_pole[2] = 8;
moje_pole[3] = 3;
moje_pole[4] = 1;
moje_pole[5] = 4;

Patrně to uděláte tak, že napíšete nejprve první řádek, ten čtyřikrát zkopírujete pod něj a opravíte: přiřazované hodnoty pole jsou speciální, ty je třeba naklepat ručně. Ale co indexy? To je jednoduchá posloupnost čísel a k jejímu vytvoření je zde právě plugin Increment: Pět stejných jedniček pod sebou označte do bloku (<CTRL-V>) a napište :Inc<Enter> – číslice „1“ se nahradí posloupností od jedné do pěti.

Autor pluginu doporučuje zavést mapování kombinace <CTRL-A> v režimu vizuálního bloku právě na volání :Inc. Zkratka <CTRL-A> totiž v normálním režimu zvětšuje číslo pod kurzorem o jedničku – je tedy logické, aby v režimu vizuálního bloku vytvářela číselnou posloupnost.

Stahujte zde.

Foo

Foo není ani tak nějaký plugin jako spíše sbírka různých funkcí, ze kterých se můžete naučit různé programátorské finty ve skriptovacím jazyku VIMu. Vše je bohatě komentováno, takže začínajícím programátorům editoru VIM vřele doporučuji!

Stahujte zde.

VimBuddy

Pitomosti typu „koulející oči“ (xeyes) apod. dorazily i do VIMu. VimBuddy je smajlík, který se na vás ze status baru všelijak xichtí podle toho, co zrovna v editoru děláte. Když už nic, může vám aspoň posloužit jako předloha k vytvoření nějakého vlastního indikátoru na stavovém řádku.

Stahujte zde.

Tetris

Tak tohle je opravdová bomba: kompletní implementace známé hry Tetris v editoru VIM. Spouští se <Leader>te (máte-li jako Leader nastavenu čárku, pak ,te). Pohyb tvarů se ovládá pomocí kurzorových kláves h

(vlevo), l (vpravo), j (dolů), k otočení slouží i, k uložení tvaru mezerník. Hra se ukončuje klávesou q.

VIM verze Tetrisu

ict ve školství 24

Stahujte zde.

Tak to je vše, přátelé. Další pluginy hledejte na vim.sf.net. Pokud máte nějaký svůj oblíbený plugin, který zde nebyl uveden, nezapomeňte se podělit! :-)

Autor článku

Michal Burda vystudoval informatiku a aplikovanou matematiku a nyní pracuje na Ostravské univerzitě jako odborný asistent. Zajímá se o data mining, Javu a Linux.