Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> The “Works (Almost) Everywhere” Club

> The Backspace Replacements

Also known as "emacs editing mode". Funnily enough, what POSIX mandates is the support for "vi editing mode" which, to my knowledge, almost nobody ever uses. But it's there in most shells, and you can enable it with "set -o vi" in e.g. bash.

 help



Vi mode is also available in Claude code and gemini-cli to give some recent examples, and a bunch of other places you might not expect it, as well the more obvious places where code is written.

Once you get used to it, it is painful to go back.


My biggest complaint about the fish shell is the lack of true vi mode. They attempt to emulate it and it works to some degree, but it's no comparison to readline's implementation.

You can always use Alt-E to open the command line in $EDITOR if you need more powerful commands. I find it better to use readline for small changes and jumping to vim for bigger ones.

Have you tried a recent version? An issue I opened about this years ago was finally closed, they claim it’s fixed now. I haven’t tried the purported fix, though.

Yes. It has improved, but it's still not there, and probably never will be. See my reply to your sibling comment.

What is it lacking in your eyes that makes it not true? I find fish’s vi mode more ergonomically complete for things like editing multi-line commands

Just pressing `xp` to swap two characters does not work in fish. Combining deletion with a movement also does not work (e.g. `d3w` to delete three words).

these have been fixed as of 4.4.0

Awesome! That released hasn't landed yet in my distro's repos. Thanks a lot! Fish is a great product.

And if you set `set editing-mode vi` in ~/.inputrc (readline configuration) you'll have it in even more places.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: