Giter Site home page Giter Site logo

bed's Introduction

Hey there, I'm itchyny

I love open-source software. I love Vim, Go, Rust, and jq.

I'm looking for GitHub sponsors.

Most used languages GitHub stats

bed's People

Contributors

alrs avatar elpinal avatar itchyny avatar mattn avatar zarathustra2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bed's Issues

panic: runtime error: index out of range

A reproducing way: vdp in an empty buffer.

More precisely,

  1. v to enter visual mode,
  2. d to delete (and copy),
  3. p to paste, but also causes panic!

The panic occurred at github.com/itchyny/bed/tui/tui_window.go:184.

Environment

macOS 10.13.4

How does it work?

Please include a usage section in your readme, I like the idea of a console editor written in Go, I was recently looking for a good one and ended up writing my own.
The only problem is that I have no idea how to use your editor. Instead of the "why" section I would rather like to have a concise manual with all keyboard shortcuts and possible command line parameters explained.
Also I was trying to call bed with -h --help and /? which I think should all really print the same kind of help that should be in the readme.
Thanks very much for sharing this editor!

Roadmap: known issues and coming new features

Thank you for getting interested in my product.

Notes:

  • This product is my hobby product. Please do not ask me when some features will be implemented. I will implement what I want when I need (mostly) on weekends.
  • Your advice for new features are welcome. I'm not familiar with reverse-engineering, I'm not an expert of some binary file format.
  • This project is open sourced. You can freely create a fork of the repository. I appreciate if you send me patches to improve features, fix some bugs and so on.

Multi-platform distribution

  • Testing on TravisCI
  • Homebrew rule
  • Windows support
    • Fix panic: send on closed channel on exit 316b04c
    • Write fails with Access is denied.: disable overwrite on Windows for now fb381a7
    • Make tests pass on Windows 1fdf7a5
    • Test on AppVeyor e8df7d5
  • Distribution from GitHub Releases

Small bugs

  • Visual mode should accept count for key mappings 6ce206c
  • Cursor position should be taken into account on switching between windows
  • One key stroke is missing after process suspension on macOS (known issue of tcell)
  • Replace (r) should exit replace mode at once 1087bf9

New features and improvements

I will definitely fix or implement these features.

More commands

More features

Please do not expect me to implement these features, but I'm interested in. I need some feedbacks.

  • Help buffer (:help)
    • Embed markdown documents?
  • Diff (:diffthis/:diffoff)
  • File format inspector
    • Using debug/elf package?
    • It'll be tough to implement many kinds of binary file formats. But I think I have to support for executables at least. There are already many soft-wares so needs investigation.
    • I'm also interested in image formats.
  • Support multiple text encodings
    • bed is a binary editor. Maybe supporting for analyzer of executables has higher priority than text encodings.
  • Configuration
    • I think this product should provide the good defaults. I'm not sure which parts users may want to configure. Mappings, displayed formats, event hooks ...
  • Plugin
    • I can't imagine what kind of plugin is required for binary editors. I need some investigation of other editors.
    • Also, I don't want to create a new scripting language. gRPC support?
  • Tabs
    • I like the tab behavior of Vim. But I hear that many people like displaying buffers in tabs.
  • Session restoration
  • Macro and repeating
  • GUI frontend or web-based UI
  • Stdin support

Quit after undo

Minor bug

Since #25 users cannot leave the editor with :q if they have unsaved changes.

If I edit a file but undo it till the state I opened the file, I am still forced to quit with :q! even though there are no changes.

I think this could be solved if for the file maybe a hash would be saved of the last saved state.
But I am not sure if this is the best way to solve this minor problem.

Move cursor in previous/next line

Thanks for the great work!

I didn't see this on the roadmap, so it would be a nice feature if the cursor automatically moves in the previous/next line if the cursor in on the left or right side.

E.g. Cursor at 0/b + press โ†’/L should jump to 0c/0 and not stuck at the same place.

bed_arrow

Can't search beyond currently loaded chunk?

When using the search (/) command I can't seem to get results for any strings that aren't already visible on the screen. If I scroll down to where a string becomes visible, then hitting 'n' will then jump to it, but if it's not on the screen, 'n' will do nothing. Is this correct?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.