Hexpair není nejlepší HEX editor na světě a ani se o to nesnaží. Zato je k dispozici kdykoliv a kdekoliv – všude tam, kde máte svůj Vim. Vznikl jako hobby projekt před pár měsíci a dospěl do stavu, kdy by mohl být užitečný širší komunitě.
Přepnout do HEX režimu se dá i uprostřed rozdělané práce: Soubor, který už máte otevřený běžným vim file.md, jedním příkazem přepnete do HEX editoru a dalším příkazem ho můžete vrátit zpět do textu. Kurzor přitom zůstane stát na stejném místě v souboru. Úpravy (byť neuložené) v jednom režimu jsou po přepnutí ihned viditelné v tom druhé.
Pokud předem víte, že potřebujete pracovat v HEX režimu, pomocí vimhex file.bin otevřete přímo HEX editor. Je úplně jedno, jestli pracujete s 8 KiB nebo 8 TiB souborem. Hexpair nenačítá do paměti celý soubor najednou, ale pracuje po stránkách (128 KiB ve výchozí konfiguraci). Pro libovolně velký soubor máte k dispozici plnou funkcionalitu Hexpair – na Linuxu, macOS, BSD a Windows ve WSL i nativně.
Hexpair je Vim plugin implementovaný v čistém VimScriptu, bez externích závislostí krom utility xxd, která je ale standardní součástí instalace Vimu (a na Windows se navíc využívá PowerShell). Na cílovém počítači nepotřebujete administrátorská práva, stačí:
curl -LO 'https://github.com/.../vX.Y.Z/hexpair.vX.Y.Z.tar'; tar xvf hexpair.vX.Y.Z.tar -C ~/.vim/pack/plugins/start/
- Zvýraznění kurzoru a výběru je synchronizované mezi HEX editorem i ASCII náhledem.
- Plná editace – ne jen změna hodnoty existujících bajtů, ale i mazání a přidávání do libovolného místa souboru libovolné velikosti.
- Zvýraznění změn – změněné, ale dosud neuložené bajty jsou v editoru zvýrazněny.
- Vyhledávání v celém souboru – textem nebo HEX řetězcem, včetně podpory
?jako zástupného znaku pro libovolnou HEX číslici. - Vyhledávání a nahrazování.
- Vložení bajtů dle zadaného řetězce a cílového kódování – zadám
Škola, vloží sec5 a0 6b 6f 6c 61, UTF-8 je výchozí kódování; zadám++enc=cp1250 Škola, vloží se8a 6b 6f 6c 61. - HEX diff režim, který zvýrazní rozdíly proti jinému souboru, včetně možnosti zobrazení obsahu vybraných bajtů proti porovnávanému souboru, přímých skoků mezi změnami, synchronizovaného dvoupanelového zobrazení pomocí
vimhexdiffapod. - Datový inspektor – co bajty pod kurzorem znamenají jako čísla (8 až 64 bitů, se znaménkem i bez, obě endianity, IEEE 754) či jako UTF sekvence, včetně textového popisu znaků.
- Rychlé skoky na libovolnou část souboru po stránkách či ofsetech, absolutně či relativně, včetně systému pro pojmenované značky. Skoky po neuložených změnách, vyhledávaných řetězcích, rozdílech v diff režimu.
- Na Windows volitelná integrace
gvimhexagvimhexdiffpříkazů do kontextového menu pod pravým myšítkem v Průzkumníku souborů.
Hexpair je open source Vim plugin dostupný na GitHubu, demo zde. Reprodukovatelná a digitálně podepsaná vydání jsou k přímému použití k dispozici v sekci releases.
Hexpair se instaluje defenzivně – sám od sebe neprovádí žádná mapování příkazů na klávesy, *vimhex* shell funkce nejsou definovány, nic se nepřidává do $PATH. Vše máte ale snadno k dispozici, pokud chcete:
echo 'runtime pack/*/start/hexpair/hexpair.vimrc' >> ~/.vimrcecho 'source ~/.vim/pack/plugins/start/hexpair/hexpair.bashrc' >> ~/.bashrc