Binary editor written in Go
I wanted to create a binary editor with Vim-like user interface, which runs in terminals, fast, and is portable. I have always been interested in various binary formats and I wanted to create my own editor to handle them. I also wanted to learn how a binary editor can handle large files and allow users to edit them interactively.
While creating this binary editor, I leaned a lot about programming in Go language. I spent a lot of time writing the core logic of buffer implementation of the editor. It was a great learning experience for me and a lot of fun.
brew install bedgo install github.com/itchyny/bed/cmd/bed@latest- Basic byte editing
- Large file support
- Command line interface
- Window splitting
- Partial writing
- Text searching
- Undo and redo
This binary editor is influenced by the Vim editor.
- File operations
:edit,:enew,:new,:vnew,:only
- Current working directory
:cd,:chdir,:pwd
- Quit and save
:quit,ZQ,:qall,:write,:wq,ZZ,:xit,:xall,:cquit
- Window operations
:wincmd [nohjkltbpHJKL],<C-w>[nohjkltbpHJKL]
- Cursor motions
h,j,k,l,w,b,^,0,$,<C-[fb]>,<C-[du]>,<C-[ey]>,<C-[np]>,G,gg,:{count},:{count}goto,:{count}%,H,M,L,zt,zz,z.,zb,z-,<TAB>(toggle focus between hex and text views)
- Mode operations
i,I,a,A,v,r,R,<ESC>
- Inspect and edit
gb(binary),gd(decimal),x(delete),X(delete backward),d(delete selection),y(copy selection),p,P(paste),<(left shift),>(right shift),<C-a>(increment),<C-x>(decrement)
- Undo and redo
:undo,u,:redo,<C-r>
- Search
/,?,n,N,<C-c>(abort)
Report bug at Issues・itchyny/bed - GitHub.
itchyny (https://github.com/itchyny)
This software is released under the MIT License, see LICENSE.