在vim中顯示並編輯十六進位制

T1YSL發表於2022-05-25

你可以在vim中可以把檔案轉換為16進位制來顯示:

:%!xxd

解釋:把所有的行(%)用本地(!)的xxd程式開啟。

xxd本是linux下一個顯示、編輯、轉換二進位制的命令。

返回正常顯示:

:%!xxd -r

注意:vim的-b選項是告訴vim開啟的是一個二進位制檔案,不指定的話,會在後面加上 0x0a ,即一個換行符。

首先以二進位制方式編輯這個檔案: 

vim -b datafile

現在用 xxd 把這個檔案轉換成十六進位制: 

:%!xxd

文字看起來像這樣: 

0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49 ....9..;..tt.+NI

0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30 K,.`.....b..4^.0

0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9 7;'1.".....i.59.

現在你可以隨心所欲地閱讀和編輯這些文字了。 

Vim 把這些資訊當作普通文字來對待。

修改了十六進位制部分並不導致可列印字元部分的改變,反之亦然。


:%!xxd -g 1 表示每1個位元組為1組

:%!xxd -g 2 表示每2個位元組為1組(預設)

:%!xxd -g 4 表示每4個位元組為1組

:%!xxd -r 將vim恢復成原來的顯示

man xxd可以獲得xxd的幫助檔案


最後, 用下面的命令把它轉換回來:


:%!xxd -r


只有十六進位制部分的修改才會被採用。右邊可列印文字部分的修改忽略不計。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2896929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章