バイナリエディターを探す旅

TL;DR: hexedit --color 良い。

バイナリーファイルを編集するというような機会は、いままでそんなになかった。 表示して確認したいということはそこそこあったが、編集するということはあってもせいぜい1byte書き換えるとかその程度。

なのでだいたい、 hexdump か Emacs の hexl-mode でことたりてた。

ただ最近わりとがっつりバイナリーを編集する必要があって、いままでのようにhexl-modeを使っていたのだが、 ガーっと入力できるのはasciiだけで、hex値での入力は毎回 C-M-x をおして1byteずつやらなければいけない。 めちゃくちゃ不便。 そもそもhexl-modeはそのようにがっつりバイナリーをいじる用途向けではなさそうだ。

適当に検索すると

とかがひっかかる。CUI、GUIけっこういろいろある。

いろいろ試して決めようとおもうが、

  • なるべくArchLinuxのデフォルトでパッケージがあるやつ[1]
  • どこでもつかえるからCUIのやつ

という条件で検索すると

  • hexedit
  • dhex

のどっちかかなと。dhexは上の記事によるとキーバインドが独特っぽかったのでとりあえずhexeditを試す

yay -S hexedit

とりあえず軽く使ってみた感じでは

  • 変なキーをおすとダイアログみたいなやつが出て親切
  • F1でmanがひらける(↑のダイアログにでる)
  • カーソル移動はEmacsキーバインドが使える
  • hex領域とascii領域の行き来はtab
  • --color で起動すれば色つきになる[2]

という感じでもうこれでいいじゃん、というかかなり気にいってしまった。こまったらF1おせばシンプルに使い方がわかるし、Emacsバインドがつかえるのも個人的には最高。 もはや表示だけでも hexedit --color をつかうレベル。

もっとはやくさがしておけばよかったな〜

Google Driveを使う

howmメモ、orgファイル、skkの個人辞書などをいままではDropboxにいれてsyncしていたが、Google Driveに変更した。

syncツールには grive2 というのを採用。Arch Linuxだとaurにあるので、

yay -S grive-git

でokだった。[1]

全部syncしてほしくはないので ~/drive/.griveignore として以下のようなファイルを作る:

*
!howm
!org
!skk

それを作ったあとで、

cd ~/drive
grive -a

とすると、OAuth認証のプロセスになって、それが通ると初回同期が走る。認証だけじゃなくて、ファイルもおとしてきてしまうので、ignoreファイルを最初に作っておかないと悲しいことになる(なった…w)

あとはこれを自動で動かすために、

systemctl --user enable grive-timer@drive.timer
systemctl --user start grive-timer@drive.timer
systemctl --user enable grive-changes@drive.service
systemctl --user start grive-changes@drive.service

をやっておけば勝手に同期してくれるっぽい。[2]