vimでバイナリデータを16進数で表示し編集する

バイナリデータをvimで読み込む。

vim -b binary.dat

バイナリデータを16進数に変換

:%!xxd

こんな感じで表示される

0000000: fa00 0000 3539 2e31 3338 2e38 3400 3900 ....59.138.84.9.
0000010: 4120 b100 f060 3308 705c efbf 185c efbf A ...`3.p\...\..
0000020: 6bf0 0408 586d 3308 505c efbf 4800 0000 k...Xm3.P\..H...

編集・・・
16進数からバイナリデータに変換

:%!xxd -r

セーブ

:w

追記

「~/.vimrc」を以下のようにすれば「-b」オプションで開いたファイルを自動的に16進数表示してくれ、編集、保存もそのままできる。

augroup BinaryXXD
   autocmd!
   autocmd BufReadPre *.bin let &binary =1
   autocmd BufReadPost * if &binary | silent %!xxd -g 1
   autocmd BufReadPost * set ft=xxd | endif
   autocmd BufWritePre * if &binary | %!xxd -r | endif
   autocmd BufWritePost * if &binary | silent %!xxd -g 1
   autocmd BufWritePost * set nomod | endif
augroup END