Hlavní navigace

Co nového ve VIM 6.0

Michal Krause

Všichni příznivci VIM, možná nejpopulárnějšího z klonů editoru VI, se již jistě nemohou dočkat novinek, která přinese nová řada 6.x. Na konečnou verzi si zatím ještě budeme muset počkat, ale z doposud vydaných alfa verzí je již zřejmé, jaká největší vylepšení nás čekají.

V tomto článku se společně podíváme na ty nové funkce, které mě osobně připadají nejpodstatnější nebo nejzajímavější. Je samozřejmé, že někoho možná daleko více potěší některá z funkcí, kterou v tomto neúplném výpisu opomenu, ale takový je už život :)

Folding
Český jednoslovný ekvivalent slova folding se nehledá snadno, ale snad by bylo možné používat termín „sbalení“. Tato funkce umožňuje skrýt určitou část editovaného souboru pod jedinou řádku. Typickým příkladem použití může být sbalení funkce ve zdrojovém kódu programu (například když už je tato funkce odladěna a chcete se věnovat jiným částem kódu).
S každý „foldem“ je možné provádět různé operace, jako je samozřejmě jeho opětovné otevření (rozbalení) nebo třeba mazání. VIM nabízí i funkce pro hromadnou práci se skupinami foldů, takže není problém například rozbalit všechny foldy v souboru. Chování foldingu lze ovlivnit různým nastavením. Zajímavá je zejména možnost zvolit si metodu, která se použije při vytváření foldu. Výchozí nastavení je manuální metoda, umožňující sbalení libovolné části kódu vymezené pohybovou klávesou nebo selekcí v režimu VISUAL, ale lze použít i jiné metody, které používají pro vymezení začátku a konce foldu například speciální značky, definice ze souboru pro zvýraznění syntaxe, výraz a nebo míru odsazení (indent).
Zatím jsem dlouhodobě folding při práci nepoužíval, ale zdá se, že přináší jenom samá pozitiva (a sociální jistoty :)

VIM 6.0 - Folding

Vertikální okna
Rozdělení editační plochy do více oken podporuje VIM už dávno, ale doposud bylo možné okna dělit pouze horizontálně. Od verze 6 lze používat i vertikálně dělená okna, a to i v kombinaci s horizontálním dělením. Výsledek si můžete prohlédnout na obrázku. Mě osobně připadá možnost otevření dvou (nebo více) vertikálních oken velmi šikovná zejména pro porovnávání více souborů.

VIM 6.0 - Vertikální okna

Vyhledávání
Vzorky pro vyhledávání a nahrazování mohou nyní obsahovat sekvenci \n, která symbolizuje znak konce řádky. Ano, je to tak – VIM konečně bude umět vyhledávat víceřádkové řetězce! S tím souvisí také některá další rozšíření, jako jsou například sekvence \_. (libovolný znak včetně konce řádky) a \_[a-z] (libovolný znak z rozsahu „a“ až „z“ nebo znak konce řádku).
Přibyla také možnost negace (sekvence @! připojená za atom značí řetězec nevyhovující atomu) a počet opakování výrazu („*“) již není nadále limitován délkou 32767 znaků.

Flexible indenting
Tzv. pružné odsazování je vlastně nový způsob, jak definovat vlastnosti automatického odsazování (autoindent). Správné odsazení je vypočítáváno pomocí VIM skriptu, který může vytvořit kdokoliv bez nutnosti zasahovat do zdrojových kódů programu samotného. Podobně, jako definice zvýraznění syntaxe, tak může vznikat podpora automatického odsazování pro všemožné jazyky zcela nezávisle na autorech VIM.

Podpora UTF-8
VIM od verze 6 podporuje plně práci s unicode, konkrétně UTF-8. Dokonce jsou podporovány až 31-bitové znaky, i když zobrazit je možné pouze 16-bitové znaky.

Další nové funkce
Následuje již jenom telegrafický seznam dalších vylepšení:
  • Vícejazyčná podpora
  • Podpora zásuvných modulů (plugins) – v tomto případě nejde o klasické dynamicky nahrávané knihovny, ale funkci pro automatické zavádění souborů se skripty z předem určeného adresáře. Součástí VIM je také modul pro editaci souborů po síti nebo modul s funkcí jednoduchého správce souborů.
  • Debugger pro VIM skripty
  • Virtuální pozice kurzoru – tato funkce umožňuje umístit kurzor tam, kde ve skutečnosti nejsou žádné znaky. To je užitečné zejména při výběru bloku, pokud není na jeho posledním řádku dostatek znaků pro označení požadovaného regionu.
  • Obnovení pohledu – tato funkce slouží k uložení a pozdějšímu obnovení nastavení a mapování klávesových zkratek pro jedno okno. Jde o funkci podobnou povelu mksession, který dělá v podstatě totéž, ale pro všechna okna najednou. mksession také nově podporuje ukládání rozložení vertikálních oken.
  • … a mnoho dalších

VIM 6.0 - Správce souborů

Jak jsem se již zmínil, nejde o úplný seznam změn, vylepšení a nových funkcí a verze 6 rovněž přináší několik drobných nekompatibilit s verzemi staršími. Chcete-li si vědět přesně, co se změnilo a jak, můžete nahlédnout do seznamu novinek pomocí povelu :h version6.

Odkazy

Domovská stránka VIM
Alfa verze VIM

Našli jste v článku chybu?
7. 2. 2001 8:09
Jakub Kahovec (neregistrovaný)

Mel jsem moznost vyzkouset VIM 6.0t alfa. A vsechno co je uvedene v clanku tam v celku stabilne funguje. Akorat je tam jeden malyVelky bug, ze v nekterych chvilich prestava fungovat backspace (da se to sice vydrzet, ale nekdy je to dost neprijemne). P.S Nemel jsem moznost vyzkouset jine verze (r,s) mozna je tenhle bug jenom ve verzi t. Ale i tak je VIM ten NEJLEPSI EDITOR NA SVETE !

4. 1. 2001 19:59
Petr Mach (neregistrovaný)

Uz aby tady byl, nemuzu se dockat. Jaky jsou zkusenosti s tou alfa verzi? Jsoutam ty nove funkce implementovany a je to v praxi pouzitelne, nebo je to prilis nestabilni?