Jste zde

AutoFenc - plugin pro detekci kódování ve VIMu

V minulém příspěvku jsem zmínil problém s detekcí kódování ve VIMu, který mě tížil. Zkoušel jsem hledat řešení, ale z těch opravdu funkčních jsem našel jen dvě. Prvním řešením byl plugin MultiEnc, který byl ovšem sloučen s druhým řešením - pluginem FencView, takže nakonec jsem vlastně měl řešení pouze jedno. Tento plugin uměl částečně to, co jsem potřeboval, ale byl především určen pro asijské jazyky a obsahoval funkce, které jsem nepotřeboval. Takže jsem se rozhodl, že si napíšu vlastní plugin. S jeho první verzí bych vás chtěl nyní seznámit.

AutoFenc - automatické zjišťování kódování souboru

Tento plugin umožňuje automaticky zjistit (lépe řečeno se "pokusit zjistit") kódování, v jakém je soubor uložen a otevřít soubor v tomto kódování. Zatím podporuje následující metody detekce kódování:

  • pomocí BOM (byte-order-mark) na začátku souboru (pouze některá vícebajtová kódování)
  • v souborech založených na HTML pomocí tagu <meta>, ve kterém je ekvivalent HTTP hlavičky Content-Type, který obsahuje informaci o kódování souboru
  • v souborech založených na XML pomocí deklarace <?xml ... ?>
  • v CSS souborech pomocí pravidla @chardet
  • podle obsahu komentáře, ve kterém je kódování specifikováno (např. // Encoding: iso-8859-2 v C++ či # -*- coding: iso-8859-2 -*- v Pythonu), poměrně volný formát specifikace
  • pomocí externího programu (standardně je použit program enca, který je výborný v tom, že u něj lze nastavit jazyk, ve kterém bývají soubory napsány, např. čeština - tento program mně pak byl schopen rozeznat kódování cp1250 od latin2, což běžně programy neumí; lze ale použít i libovolný jiný program)

Případné další informace naleznete v popisu pluginu (anglicky).

Závěr

Plugin si můžete stáhnout a vyzkoušet zde. Zatím se jedná o pre-release verze 1.0. Mám v plánu ho zveřejnit v databázi pluginů pro VIM, ale nejdříve provedu pár testů a opravím případné chyby. Pokud v pluginu naleznete chybu, či by se vám v něm líbila nějaká dodatečná možnost detekce kódování, tak mně určitě dejte vědět. Také budu rád za každý názor a připomínku k tomuto pluginu (je to můj první plugin a s VIMem dělám něco přes týden, tak na to prosím berte ohled :)).

Osobně jsem s ním spokojen, protože zatím u všech dokumentů, které jsem zkoušel, (titulky k filmům, projekty, věci do školy atd.) to kódování detekovalo správně, což jsem potřeboval.

EDIT: Plugin jsem umístil do databáze pluginů pro VIM. Pokud jej používáte, všem doporučuji upgrade na verzi z této databáze (oproti pre1.0 bylo provedeno několik úprav).

Tagy: 

Přidat komentář