Need help with bed?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

itchyny
1.0K Stars 36 Forks MIT License 812 Commits 0 Opened issues

Description

Binary editor written in Go

Services available

!
?

Need anything else?

Contributors list

# 12,781
Vim
golang
test-fr...
Bootstr...
759 commits
# 363,673
OCaml
Shell
typeset...
opam
20 commits
# 11,018
Go
golang
maltego
gRPC
4 commits
# 280,017
python3
cleaner
MATLAB
hex-edi...
2 commits
# 3,515
viml
golang
ag
q
1 commit

bed

CI Status Go Report Card MIT License release pkg.go.dev

Binary editor written in Go

Screenshot

bed command screenshot

Why?

Why not? Programming is so fun!

I learned so much while creating this editor; handling of file pointers, what the saying details should depend on abstractions mean, how to mock file system for tests in Go language, how to solve deadlock or race conditions between goroutines and many other things.

After all, creating by yourself is the best way to learn how it works.

Okay, but why?

I actually want a binary editor with Vim-like user interface, which runs in terminals, portable, fast and with window splitting feature. I think I started coding for what I want before doing research on existing editors.

Installation

Homebrew

brew install itchyny/tap/bed

Build from source

go get github.com/itchyny/bed/cmd/bed

Features

  • Basic editing: inserting, replacing, deleting bytes
  • Support for large files
  • Window splitting
  • Partial writing
  • Text searching

Note that this software is still in its early stage of development. Please refer to #1 for roadmap.

Commands and keyboard shortcuts

This binary editor is influenced by the Vim editor. So if you have experience with Vim, you will notice most of basic operations of Vim are supported with this binary editor too.

  • File operations
    • :edit
      ,
      :enew
      ,
      :new
      ,
      :vnew
      ,
      :only
  • Quit and save
    • :quit
      ,
      :qall
      ,
      :write
      ,
      :wq
      ,
      :xit
      ,
      :xall
      ,
      :cquit
  • Window operations
    • :wincmd [nolhkjtbpKJHL]
      ,
      [nolhkjtbpKJHL]
  • Mode operations
    • i
      ,
      I
      ,
      a
      ,
      A
      ,
      R
      ,
      , 
      v
  • Undo and redo
    • :undo
      ,
      u
      ,
      :redo
      ,
      
      
  • Moving cursor
    • :{count}
      ,
      :{count}goto
      ,
      :{count}%
  • Searching
    • /
      ,
      ?
      ,
      n
      ,
      N
      ,
       (to abort)

Bug Tracker

Report bug at Issues・itchyny/bed - GitHub.

Author

itchyny (https://github.com/itchyny)

License

This software is released under the MIT License, see LICENSE.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.