2026-03-09

概要

hxavi は ncurses を利用して開発された、Unix系システム向けの軽量なバイナリエディタです。Linux や FreeBSD 上で動作し、シンプルな操作性と高い応答性を特長とします。

主な特長

オープンソースで 利用 / 改造 が自由
vi とほぼ同じ操作性で学習コストが低い
データの挿入 / 削除 / 上書き / 検索に対応
回数無制限のアンドゥ / リドゥ
巨大ファイルも表示 / 上書きが可能
ncurses ベースなので大抵のターミナル環境で動作
Linux / FreeBSD 対応

主な機能

viとほぼ同じ操作性で、カーソル移動 / 画面のスクロール / データの挿入・削除・追記 / データの上書きが出来ます。挿入・追記・上書きでは、16進数でもテキストでも入力が出来ます。

viとほぼ同じ操作性で、 データの検索が出来ます。16進数でもテキストでも簡単に入力が出来ます。

メモリの空きが残っている限り編集履歴を維持するので、回数無制限のアンドゥ / リドゥが可能です。もしメモリの空きを使い切った場合はそのままでは編集が続けられなくなりますが、一旦ファイルを保存して再度起動すれば作業を継続出来ます。

使用可能メモリのサイズを超える巨大なファイル (最大16TiBまで) もオプション(-b) で内容確認や上書き修正が出来ます。(この場合、編集は上書きのみ可能です。挿入 / 削除 / 追記はできません。)

データの値の分布 (0x00~0xFFのそれぞれのデータがどのくらいの比率を占めているか) をグラフィカルなヒストグラムで確認出来ます。内容やフォーマットが不明なデータを解析する際にその助けになります。

各データの分布状況を概観できるグラフィカルなバイトマップ・ビューが使用できます。データの規則性などの特性が目で見えるので、データ解析の助けになります。例えば固定長のレコードの存在を比較的簡単に見つけることが出来ます。

テキストの入力/表示/検索ではテキストデータについての複数のエンコーディングに対応しています。

utf-8、utf-16le、utf-16be、

iso-8859-1、

euc-jis-2004、shift_jis-2004、iso-2022-jp-2004

テキストのフィールドではコントロールコード(0x00~0x1F,0x7F)を区別して表示します。

プログラムの動作中にもヘルプを見たり、オンラインマニュアルを確認したり出来ます。

バイナリデータを十進数 ( 整数, 浮動小数点数 ) で表示 / 検索 / 書き込みすることが出来ます。Big-Endianにも対応しています。浮動小数点数をビット単位で編集することも出来ます。

2値のbmpファイルなど非圧縮のビットマップデータであれば内容を目視でき、ごく簡易的ではありますが編集も可能です。

画面サイズは動作の途中でも拡大/縮小が出来ます。(最小サイズ:80桁 x 24行)

テキスト入力が終了する際に、IMEのマルチバイトの入力モードを連動して終了させるという、テキスト入力環境 ( fcitx, ibus ) との連携機能があります。

エディタの動作を変化させるオプションは :set コマンドで操作することが可能です。このオプション設定は ホームディレクトリの .hxavirc ファイルに保存しておくことが出来ます。

ライセンス

いわゆる2項BSDライセンスで提供します。このプログラムは役立つことを意図して作成されていますが無保証です。著作権は留保しますが、利用/改変は自由です。

ダウンロード

バイナリファイル

以下は FreeBSD のバイナリパッケージです。

<インストール方法>
su
pkg install hxavi-*.pkg
exit
hxavi

<アンインストール方法>
su
pkg delete hxavi
exit

以下は Linux(Ubuntu) のバイナリパッケージです。

<インストール方法>
mv hxavi_*.deb /tmp/
cd /tmp
sudo apt install ./hxavi_*.deb
hxavi

<アンインストール方法>
sudo apt remove hxavi

ソースファイル

Linux (Ubuntu)、FreeBSDともにインストール方法は共通です。OSの種類は自動で認識します。

<Linux (Ubuntu)>

<インストール方法>
(sudo apt install gcc)
(sudo apt install make)
sudo apt install libncurses-dev
tar zxvf hxavi-*.tar.gz
cd hxavi-*
make hxavi
sudo make install
hxavi

<アンインストール方法>
cd hxavi-*
sudo make uninstall

<FreeBSD>

<インストール方法>
tar zxvf hxavi-*.tar.gz
cd hxavi-*
make hxavi
su
make install
exit
hxavi

<アンインストール方法>
cd hxavi-*
su
make uninstall
exit