HACKER Q&A
📣 GrollingGrakbor

Is there other software similar to Vim and Emacs?


I'm looking for software that is powerful, understandable, hackable, extensible, reliable, future-proof (few breaking updates) and feature-rich.

The two tools I've found so far that come close to this are TiddlyWiki (notetaking) and Vim/Emacs (same text editor niche). TiddlyWiki loses some points on hackability because it's web technology and fairly sandboxed. Vim/Emacs are only for text, obviously. I think what these tools have in common is that they all have a strong core idea (Vim: modal, TiddlyWiki: a quine of tiddlers, Emacs: elisp) that provides insane feature breadth at relatively low cost to learnability.

Other software is usually on a spectrum of low feature count (most tools in the UNIX philosophy) to low understandability (IDEs, most other text editors, all OSes). Then a few rare ones are extremely powerful, but so old and poorly designed that I don't think they make the cut (e.g. Bash in my opinion).

Are there other tools similar to Vim, that maybe even cover other application areas? Doesn't have to be terminal-based. I'd love to hear your opinions!


  👤 b5n Accepted Answer ✓
> Emacs are only for text, obviously.

I don't know if I missed something in your post, but this couldn't be further from the truth. It's cliche to refer to emacs as it's own OS, and it is not uncommon for users to do all of their computing inside of emacs - web browsing, email, note taking, documentation, writing, version control, terminal, ide, window manager, remote admin, etc. Based on your criteria emacs seems like a perfect fit, I encourage you take take a deeper look at emacs if you're interested.

https://github.com/emacs-tw/awesome-emacs


👤 marttt
Rob Pike's acme text editor for the Plan 9 operating system: http://acme.cat-v.org/

https://www.youtube.com/watch?v=dP1xVpMPn8M (excellent overview of the editor by Russ Cox)

And acme's predecessor sam: http://sam.cat-v.org

You'll need plan9port to run acme on Linux, though. But the core ideas are very simple and powerful (sam: everything is a huge string; acme: everything is a clickable file) and thus hopefully long-lasting.

I would also mention edbrowse, a line-oriented web browser initially for blind people. Maybe this is too far on the fringe, though. It does have a lot of depth (excellent scripting capabilities); it's an amazing project actually: http://edbrowse.org/


👤 hcs
I've heard this about AutoHotKey: https://www.hillelwayne.com/post/ahk/

Not just macros, but deeper automation of anything in a Windows UI, with a great depth of community scripts and knowledge.


👤 drmaximus
Sioyek: https://sioyek.info

It's a PDF viewer with many powerfull features ( for example you can preview references even when the document doesn't have links) and vim-like keybinds. Although it is a little too soon to determine if it will be future proof.


👤 haunter
FFMpeg and its libraries https://ffmpeg.org/about.html

👤 Jtsummers
Smalltalk, my experience has mostly been with the Squeak and Pharo variants. It hits everything on your list, in my opinion.

👤 esrh
Some people have mentioned window managers, but nothing comes quite close in terms of extensibility and feature as dwm[0] and xmonad[1], which is a near dwm reimplementation in haskell with many more interesting features.

Both programs are configured by writing code, which compiles to a binary that you then use. Xmonad and xmonad-contrib are maybe more accurately described as haskell libraries that make writing your own window manager trivial. Highly recommend if you enjoy configuration, you can do some really cool stuff with it.

[0] https://dwm.suckless.org/ [1] https://xmonad.org/


👤 zzo38computer
A feature which is useful in my opinion is that the end user can enter commands to use external programs with pipes. There are other good ideas such as standard I/O, command lines, etc. Better also is: you have enough ropes to hang yourself, and also a few more just in case (this is UNIX philosophy). Most web browsers are the opposite of what is any good, though; they do not believe the end user, offer too few controls, do things automatically that they should not do, break things, etc. I do not know of any good ones, and most of them just become worse over time.

I try to write better programs, although of course, if it is any good or not, is a matter of your opinion.

I wrote a ZZT editor which is has some similarities with vim (it has a modal interface similar to vim, using various key commands for many operations (even can use hjkl for cursor movement, and numeric prefixes, like vim does), and also you can enter SQL codes to perform queries and batch operations, and can use SQL codes to customize keybindings too). You can also use external text editors to edit ZZT-OOP text (later might also be adding option to allow a built-in text editor too, with syntax highlighting and auto-completion).

I had written other programs too, and there are probably many that I had not written, too. However, many newer programs are not designed well like that and instead include only a few options that are nearly worthless. I try to oppose that and write a better one.


👤 viraptor
Blender is kind of vim/emacs of the 3d world. Especially with its extensibility through python.

👤 saltcured
The reason editors seem to be a well populated niche, I think, is not only because it is a common need but because it is an application domain ripe for having an application+framework+extensions hybrid. The generic nature of the content being manipulated means that a generic buffer management framework can go a long way to allow humans to adapt it to many purposes. This generic approach also limits the complexity of writing an extension, which makes it more accessible to new or narrowly motivated hackers. Other content-generating applications with similar scripting potential exist in imaging and graphics, e.g. photoshop, gimp, cinepaint, blender. I am sure there are audio equivalents but I know less about those.

An even more robust and powerful application plus framework is arguably an RDBMS system. Even if you limit yourself to the intended usage model, the commercial products like MSSQL and Oracle meet many of your criteria. Of course, the open source ones like PostgreSQL, MariaDB, and SQLite take this even further. They have pretty extensive internal interfaces you can also extend, if you are not content with the planned extensibility of SQL, stored procedures, etc.

But, are you limiting yourself to standalone applications? Many frameworks are very modular and meet many of your criteria for software, but are intended to be consumed by developers and so may not have as much standalone function. Consider web app frameworks, conventional thick GUI frameworks, and more focused tooling like parser generators.

And of course developers may be blind to them, but the operating systems and compilers we use are also rather elaborate and extensible frameworks. I think things like GCC and the Linux kernel demonstrably meet these criteria today, as they did when I was starting my career ~25 years ago.



👤 hulitu
Ed. Ed is the standard text editor.

👤 commotionfever
not in a similar category but foobar2000 for windows is infinitely customisable and really powerful. including its UI, plugins, embedded language for tag properties.

for example check the reddit and look at peoples setups. all wildly different


👤 ajvs
Obsidian and Logseq. Both work with Markdown files and have a large number of community plugins.

👤 listenallyall
I think Excel checks off all your boxes:

- powerful

- understandable

- hackable

- extensible

- reliable

- future-proof (few breaking updates) <-- can't promise anything but you can open an XLS from 1995 in Excel 2021.

- feature-rich


👤 therealmocker
For a different application area consider the Minecraft sandbox environment.

👤 Jeaye
A dialect of Lisp. Choose your flavor, though I recommend Clojure.

I would say this counts because the language itself is programmable. The lisp I use can be tailored to exactly how I want to write code, just like my vim setup.

Anyone who's been using CL for the past couple of decades basically has their own dialect on their hands, given all the tools they've built around the standard ones.

I'm not saying this is the best way to collaborate with code that others need to muck with, just as I wouldn't expect anyone to be able to do anything of use in my vim setup. It's for you.


👤 euger
Surfingkeys https://github.com/brookhong/Surfingkeys is a browser extension for surfing web with vim like interface. It has lots of built-in functionality, for example: focus on the first input, edit URL and visit the changed URL, go one path up in URL, go to audio playing tab, copy column(s) of a table, copy code blocks... It's extensible, you can bind JS functions to keymaps.

👤 galfarragem
Autocad[0], the emacs for CAD. Since 1982 and still the industry standard. You can even script it with lisp[1].

[0] https://en.wikipedia.org/wiki/AutoCAD

[1] https://en.wikipedia.org/wiki/AutoLISP


👤 wruza
Window managers: awesome, i3.

👤 dontbenebby
Pico was used in the examples in undergrad to avoid derailing the class teaching how to exit Vi (the GNU version is "nano")

https://en.wikipedia.org/wiki/Pico_(text_editor)


👤 seydor
blender, if it ever manages to make a consistent experience.

ableton, is sort-of-there but it could be less verbose

PHP as a scripting tool , has everything fast

Secondlife/opensimulator as gaming platform. Unfortunately too much legacy stuff and not enough innovation, but more open and hackable than others


👤 porcc
My friends and I call these "golden software." Things that are reliable, meaningfully F/OSS, versatile and extremely useful. Our top tier is:

- Syncthing - OBS - VLC Personally I also think: - Licecap - TouchDesigner - Stylish


👤 bvoq
Check out micro which is supposed to be a modern nano. https://github.com/zyedidia/micro

👤 thetic
- qutebrowser

- vifm

- ranger

- i3

- sway

- tmux

- zathura

- tig


👤 t6jvcereio
Sooo.... Am I the only one who thinks this looks like a post promoting "tiddlywiki"?

👤 jdougan
Nyxt, the lisp enhanced web browser

👤 amitprayal
jEdit - Java based editor with lots of plugins and extremely customizable.

👤 anonuser123456
Visual Studio Code. I don’t know if any comparable editing system.

👤 darthrupert
Visual Code, I guess obviously. Has mostly overtaken both Emacs and Vim.

👤 nnoitra
VSCode demolishes Vim and Emacs. Want something easier to extend? Write your own editor.

👤 ERAAlex
If you look for a markdown note-taking tool for developers - check out https://era.sh It's currently in beta - so you can use it for free.