A rare $EDITOR hopping

And the Bmap saga

I never actually use 4chan before, but I found the greentext format to be quite interesting for story telling. So this time I will try writing a blog in this style, hope you enjoy!

Emacs

> be me
> just switch from windows 10 to kde neon
> fall in love with it customizability
> discover xah blog about emacs
> also pp say that its the most customizable text editor
> fitting with the linux spirit that i desire
> install it

> emacs also come with a shitty tui and a clutter gui
> i minimize and customize the gui
> emacs is now as good as the default text editor that come with the de
> try out spacemacs
> dont like it
> its slow and way more bloat
> decide to rice emacs from scratch
> drown myself in the awesome emacs list
> install a LOT of packages to emacs
> spent months configuring emacs
> loving it

> emacs have a ton of features
> too much features
> humongously bloat!
> not just ide level of bloat
> but os level of bloat
> even have a builtin file manager
> and tetris

> slowly feel overwhelmed and exhausted in the emacs config rabbit hole
> still feel somewhat dissatisfied with the config...

Learning about Emacs from XahLee's blogs, I discover Xah Keyboard Guide, then of course learn about XahLee's ErgoEmacs Keybinding and Ergoemacs-mode, it's try to bind frequently used actions to easy to reach shortcut and use the commonly bound keys familiar to industry standard (e.g: Ctrl + z to undo, Ctrl + s to save). But it's heavy and breaks regularly, some of the binds I feel like missing or can be improved. So I decided to create my own bindings, unknowingly kickstart a length journey...

Because I want a better Emacs keybinds instead of except it's legacy design, I couldn't stand the default keybinds and spent way too much time and energy to learn as much about Lips and Emacs's actions to config... That is the reason why I feel exhausted and dissatisfied with Emacs. And also at the time, I didn't know about Doom Emacs, an Emacs framework that doesn't bloat.

NeoVim

> watching some linux stuff on yt
> saw some cool hackerman-looking text editor
> its vim
> pp love vim
> specifically neovim
> try it out
> its very fast and light
> feel like a hackerman
> config nvim
> just week later
> i was able to config nvim to become a more ideal editor for me than emacs

Emacs keybinds are weird, but Vi binds are otherworldly strange! Many keys feel redundant, some frequently used actions are place in awkward places...

Vim introduce me to modal text editing. Simply put, it divides writing, editing and selecting and so on into separate modes, and so the user just need to press buttons to perform actions instead of holding down multiple keys combination. it took a few days to get used to, after that, ... [Enlightenment~], editing feel like dancing my fingers on the keyboard!

Vi binds ecosystem is huge with a lot of popular tools implementing it in one way or the other, one that learn Vi keys will benefit a lot by it's ecosystem. I of course ignoring it and continue my own keybinds saga.

This time I decide to turn the keybinds from my custom config into a big project, I create Bkey its a universal keybinds system design for almost all applications. By define each key on the keyboard with a meaning, the applications can bind their own set of shortcuts/actions to fit those meanings. And come with it: Bkey-Vim a Bkey implement for Vim.

Kakoune

> saw a video about kakoune by dt
> skeptical at first
> then realize its genius design
> switch editor for the third time
> kakoune is extremely minimalistic
> and have better default
> plus easier to config than previous editor
> its build from the ground up with its philosophy
> e.g: object followed by verb (like how thing should be)
> multiple selections is the best things ever introduced to text editors
> its easy to understand, fast, convenient, orthogonal, flexible and powerful
> boy i can never go back to those non multi selections editor every again

When switching to Kakoune, I decide to overhaul the Bkey project, rebrand it to Bmap and create Bmap.kak a Bmap implement for Kakoune.

Other TUI editors

> i also try out other tui editors later on:

Helix

> helix is like kakoune with builtin lsp and tree sitter
> written in rust
> blazingly fast

I also wrote a lengthy features requests and changes to an issues on Helix's Github, of course it got rejected.

I try to make Bmap-Helix (unfinished).

Pepper

> probably the best designed tui text editor that i know of
> its building up upon Kakoune philosophy
> but use caret style cursors
> (cursor is not a block in a characters but a thin line between two characters)
> like cursors on any other gui apps
> its keybinds actions are elegantly and convenient
> pepper is bloat free
> its doesnt having any feature that could instead be implemented by integrating an external tool
> its more minimal than nvim and helix
> but still have enough features (like lsp support) out of the box unlike kakoune
> the downside its although pepper is open source
> its not free
> at the time i try it still very buggy and unpolish

And of course I ertend to make Bmap-Pepper (unfinished).

The tiny problem with TUI editor

Normally when I'm moving around the file system in the shell, if I want to edit some files, I want to open the editor in a new window and leave the shell in the back, so latter I can do other things on the same path rather than replacing the current shell with the editor. I could write a script/alias/function to do that, but isn't a GUI editor like VScode already opened files in a new window by default?

VScode

> thinking about switching back to gui editor
> then a desperate thought appear
> maybe vscode
> the normie editor
> is the answer
> ...
> i have take a look at vscode in the past
> saw it have made a lot of right design decisions
> and used it as a standard to improve my other editor config
> maybe i should give it try
> ...
> install vscode
> probably the editor that come with the best default setting
> its not slow or heavy as pp said

> its keybinds is industry standard
> multi selections in vscode is not as good as powerful as kakoune but still extremely good
> switching back to non modal editing feel a bit slow
> but for me its not a drop in productivity at all
> i still have my skill navigate with my trusty arrow keys

> its have the best lps support
> and ton of other features
> yet none of it feel bloat
> vscode plugins ecosystem is the biggest
> easy to learn and config
> start spending more time to code than tweaking the editor
> seem like its the most popular editor for reasons

> while everyone share about how they switch from vscode to neovim and emacs
> i do this:
> emacs -> neovim -> kakoune -> helix -> pepper -> vscode
> now that is a rare $EDITOR hopping

Zed

Update! After writing this blog for a while, Zed was released.

Zed is a GUI editor written in Rust. Compared to VScode, it is fast, minimalist, and at the same time has many built-in features that in VScode must be installed through extensions. Not only that, it also comes with Vim bindings! I don't care about Vim, what matters is that Zed has first-class modal editing that we can personalize, once again opening the door to the Bmap saga! That said, I'm pretty exhausted with making a massive system like Bmap, maybe I'll do something simpler...