Hello Guest    ログイン
top > Linux > vimでバイナリ編集できるようにする

vimでバイナリ編集できるようにする

カテゴリー: Linux| 公開: 2009/7/18 | コメント(1)

vimに付属のxxdを使って、バイナリファイルを編集できるようにする。

ずんWiki - vim を参考に、.vimrc に以下を追加する。上書きがうまくいかなかったので、少し修正した。

"バイナリ編集(xxd)モード(vim -b での起動、もしくは *.bin で発動します)
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
        autocmd BufWritePre * endif
        autocmd BufWritePost * if &binary | silent %!xxd -g 1
        autocmd BufWritePost * set nomod | endif
augroup END

-bオプションをつけてバイナリファイルを開く。

0000000: ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 48  ......JFIF.....H
0000010: 00 48 00 00 ff db 00 43 00 10 0b 0c 0e 0c 0a 10  .H.....C........
0000020: 0e 0d 0e 12 11 10 13 18 28 1a 18 16 16 18 31 23  ........(.....1#
0000030: 25 1d 28 3a 33 3d 3c 39 33 38 37 40 48 5c 4e 40  %.(:3=<9387@H\N@
0000040: 44 57 45 37 38 50 6d 51 57 5f 62 67 68 67 3e 4d  DWE78PmQW_bghg>M
0000050: 71 79 70 64 78 5c 65 67 63 ff db 00 43 01 11 12  qypdx\egc...C...
0000060: 12 18 15 18 2f 1a 1a 2f 63 42 38 42 63 63 63 63  ..../../cB8Bcccc
0000070: 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63  cccccccccccccccc
0000080: 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63  cccccccccccccccc
0000090: 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ff c2  cccccccccccccc..
00000a0: 00 11 08 00 60 00 80 03 01 22 00 02 11 01 03 11  ....`...."......
00000b0: 01 ff c4 00 19 00 00 03 01 01 01 00 00 00 00 00  ................
00000c0: 00 00 00 00 00 00 01 02 03 04 00 05 ff c4 00 17  ................
00000d0: 01 01 01 01 01 00 00 00 00 00 00 00 00 00 00 00  ................
00000e0: 00 00 01 02 03 ff da 00 0c 03 01 00 02 10 03 10  ................
00000f0: 00 00 01 d2 99 db a4 54 a3 d9 1e d6 b1 06 a7 2c  .......T.......,
0000100: 46 9b 47 9f da 06 a6 7e bf 10 ea 75 3d 43 42 2d  F.G....~...u=CB-
0000110: 78 9b d1 e5 99 d0 73 60 b7 42 42 82 93 98 52 87  x.....s`.BB...R.

編集するときは、16進数の部分を書き換える。右側のテキスト部分の変更は反映されない。

トラックバックURL

1件のトラックバック

  1. 2009/7/20 11:23

    [...] バイナリエディタで「/var/www」を「/home…(nullを3つ)」に修正。vimのバイナリモードを使った。 [...]

コメント送信

メールアドレスが公開されたり他で使用されたりすることはありません。