Hex editing done right.
Shift address lines around, edit and delete bytes, it will all work itself out on :w.
Install
{ 'RaafatTurki/hex.nvim' }This plugin makes use of the xxd utility by default, make sure it's on $PATH:
xxd-standalonefrom aur- compile from source
- install vim (it comes with it)
Setup
require 'hex'.setup()
Use
require 'hex'.dump() -- switch to hex view require 'hex'.assemble() -- go back to normal view require 'hex'.toggle() -- switch back and forth
or their vim cmds
:HexDump
:HexAssemble
:HexToggle
any file opens in hex view if opened with -b:
nvim -b file nvim -b file1 file2
Config
-- defaults require 'hex'.setup { -- cli command used to dump hex data dump_cmd = 'xxd -g 1 -u', -- cli command used to assemble from hex data assemble_cmd = 'xxd -r', -- function that runs on BufReadPre to determine if it's binary or not is_file_binary_pre_read = function() -- logic that determines if a buffer contains binary data or not -- must return a bool end, -- function that runs on BufReadPost to determine if it's binary or not is_file_binary_post_read = function() -- logic that determines if a buffer contains binary data or not -- must return a bool end, }
Plans
- Implement pagination
- Implement auto bin detection
- Transform cursor position across views
- Create an
xxdTS parser
Feel free to PR
