はじめに

これは何?

Puting は Windows 上での使用を想定したヘックスエディタです。様々な事情により Windows 上でプログラミングを行なったり、未知のファイルを解析する場合の手助けになればと考えて公開します。

イントロダクション

本書では本ソフトウェアの取り扱いの注意点を述べます。使い方の説明については、同梱の intro.html を参照してください。

ソースコード

ソースコードを同梱して提供します。使いにくい箇所は変更して使用してください。 src フォルダの中にあります。

ビルドには MSYS2 を使うことを想定しています。 makegcc が必要です。同梱のバイナリは ucrt64 でビルドしています。他の環境は未検証です。 ANSI 版のビルドは非対応です。Unicode 版としてビルドしてください。

HTML ファイルは Markdown ファイルから変換して作ります。こちらは MSYS2 の python と imagemagick に加えて、別途 Windows 版の Pandoc が必要です(MSYS2 から path が通っていること)。

src フォルダ内で下記のようにしてビルドします。

$ make

これで実行ファイルと HTML 文書が生成されます。下記と同等です。

$ make obj doc

ライセンス

ソースコードのライセンスは、src/puting.c の冒頭に記載しています。

実行環境

Windows11 で動作確認しています。 Windows10 でも動くと思いますが、動作確認していません。それより前の環境では、プログラムを修正しないと動かないはずです。

現状

開発中。アルファ段階です。以下の機能に制限があります。ほかの機能にもいろいろ足りない部分があります。

他にはないの

今すぐバイナリをばりばりハックしたいんだけど。という方は、他のエディタを検討してみてください。 ImHex はどうでしょうか。クロスプラットフォームのソフトなので、Windows 上でも動作します。

時間に余裕がある方は GitHub で探してみてはいかがですか。

Puting は以下の機能に制限があります。

ファイル

保存は暫定で、「puting.out」というファイルに書き出します。問答無用で上書き。開くと閉じるは対応済み。大きいファイル(2GiB 以上)は正常に読み込めない不具合があります。

編集

クリップボードからのペーストに未対応。アンドゥ・リドゥにも未対応。任意のバイト列の検索に未対応。 r i などのコマンドの挙動が vi とはかなり異なります。使いにくいため、今後仕様を変更する可能性があります。目玉機能のテンプレートを使った編集に未対応。ファイルタイプを自動判別してテンプレートを適用する機能も未対応。

表示

HiDPI に対応していますが、144dpi 以外の画面では表示が乱れている場合あり。ダークモード対応済み。それ以外のカラーテーマ未実装。描画の処理が単純すぎて CPU 負荷が高い。機種と状況によっては重いかも。

ウィンドウズ標準の UI

メニューバーとかツールバーとかありません。キーバインドもウィンドウズらしくありません。

カスタマイズ

設定画面未対応。メイン画面の表示フォーマットの変更に未対応。キーボードマクロ未対応。メニュー・ツールバーはそもそも付いてない。

キーバインド

vi 風一択。変更するにはソースコードを編集してリビルドしてください。ただし現状では2ストローク以上のキーシーケンスには対応していません。または、AutoHotkey を使えばリマップできます。こちらは2ストロークでも対応しているかも。

Wine

Wine 上での動作は検証していません。