24 ms·
Ask HN: 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!
- darthrupert 4y agoVisual Code, I guess obviously. Has mostly overtaken both Emacs and Vim.
- rlpb 4y agoOvertaken how? Download size? Startup time? Ubiquitous availability? Number of kernel hackers who use it as their daily driver? What's your metric?
- jshzglr 4y agoRelax and open your eyes.
- wruza 4y agoNot a fan of vscode (or emacs, which it “has overtaken”, not vim), but I think it fits OP’s first paragraph.
- darthrupert 4y agoPopularity, features, quality. I still use Emacs myself but I'm not fucking blind.
- worthless-trash 4y agoMemory usage and CPU time ! Heyooo!
- jhbadger 4y agoI remember when Emacs was viewed as requiring a lot of resources (in the early 1990s) and I remember the sysadmin of our shared UNIX system scolding us if we had more than one emacs process running (as opposed to opening multiple files in different buffers).
- groovy2shoes 4y agoThe old joke was that EMACS stood for Eight Megs And Constantly Swapping. Of course, eight megs is nothing these days.
- ipaddr 4y agoThat's like saying the phone has overtaken the horse. I doubt many people sshing into a box using vim will choose visual code. There might have been some people using vim for daily development who switched but probably not many
- nnoitra 4y agoReally? Did you miss the part where both of them are editors?
- ipaddr 4y agoAre you opening visual code in your putty session to edit a config variable? They are as similiar as word and pico.
- nnoitra 4y agoNo, but that's for basic text editing only. Anything more serious and you spending 2 hours per 6 hour development time configuring vim.
- Vijayvithal 4y agoYou configure Vim Daily? For every Task? Wow! I have once .vimrc configured for all the languages that I use/know. Whenever I work with a new client. I pull that .vimrc on the allocated machine. Run PluginInstall and in minutes I am ready to go!
- 5e92cb50239222b 4y agoI would claim the opposite — VSCode is nearly unusable without very heavy customization unless you're fine with being very inefficient. Hotkeys for many common operations are not assigned out of the box. Without that, using it involves driving the interface with both the mouse and the keyboard. Those that are assigned are awkward and look like they've been designed for a spider since they require you to reach keys on the opposite sides of the keyboard. I always get the feeling that its own authors don't use it for anything more complicated than editing /etc/hosts, although it's quite obviously not true.
- GrollingGrakbor 4y agoI've been using VSCode kinda on and off, but I haven't learned it properly yet. Do you think it's truly worth it? It seems to me like you'd use it mainly when you don't have access to a full IDE, so I haven't really found a niche yet.
- anonuser123456 4y agoVSCode is magical in my experience. I say this as a 20 year emacs user, and 10 year Vim user.
- Vijayvithal 4y agoVSCode is good. But it is a memory hog compared to Vim. I need that memory for my compile/simulate tasks.
- worthless-trash 4y agoI wish someone could show me actual repl work in vscode for a lisp or erlang. It sometimes gets the way there, but doesn't to make it. I think the plugin writers are either shoe-horned by VCCodes lack of plugin capability or they are basing their work off some other toolings expected behavior and it doesn't "sit right" with how I work.
- Jtsummers 4y agoSmalltalk, my experience has mostly been with the Squeak and Pharo variants. It hits everything on your list, in my opinion.
- Qem 4y agoI second this recommendation. Squeak and Pharo are awesome, not limited to text, and have fast virtual machines.
- igouy 4y ago> fast virtual machines Compared to what? To do what?
- Qem 4y agoWell, compared to popular dynamic languages with similar levels of abstraction, like Python or Ruby. Squeak was just released with SistaV1, so I think the speculative inclining JIT is just around the corner. While using Pharo, I'm used to get code running 2-3 faster than the equivalent in Python.
- worthless-trash 4y agoMan i wish I could really understand pharoh.
- znpy 4y agoone of the most annoying things about smalltalk/pharo is that the "marketing" tell you it's simple and the syntax fit in a sheet of paper, yet all the times i tried to try it i had to go through a lot of pharo introductory tutorial before i could even start to type an "hello world". needless to say I got bored ad moved on.
- scroot 4y ago`Transcript show: 'Hello, World'` Not especially complex syntax. It just doesn't have a lot in common with languages with Algol-like syntax
- commotionfever 4y agonot 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
- hulitu 4y agoEd. Ed is the standard text editor.
- GauntletWizard 4y agohttps://www.gnu.org/fun/jokes/ed-msg.en.html https://www.gnu.org/fun/jokes/ed-msg.en.html
- drmaximus 4y agoSioyek: https://sioyek.info 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.
- wruza 4y agoWindow managers: awesome, i3.
- hcs 4y agoI've heard this about AutoHotKey: https://www.hillelwayne.com/post/ahk/ 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.
- haunter 4y agoFFMpeg and its libraries https://ffmpeg.org/about.html https://ffmpeg.org/about.html
- marttt 4y agoRob Pike's acme text editor for the Plan 9 operating system: http://acme.cat-v.org/ http://acme.cat-v.org/ https://www.youtube.com/watch?v=dP1xVpMPn8M 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 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/ http://edbrowse.org/
- thetic 4y ago- qutebrowser - vifm - ranger - i3 - sway - tmux - zathura - tig
- GrollingGrakbor 4y agoVifm looks really interesting, and admittedly I haven't tried ranger. Will give them a go, thanks! The others are all very fine pieces of software I all use but imo not nearly on the same level. They're essentially programs with fancy keyshortcuts.
- akrifari 4y agoYou should also check out nnn (https://github.com/jarun/nnn https://github.com/jarun/nnn) if you're looking for terminal-based file manager.
- atmosx 4y agoIIRC the golden standard is midnight commander ( https://midnight-commander.org/ https://midnight-commander.org/ ), which is another old timer. I wonder how nnn and vifm compare to mc.
- ERAAlex 4y ago[dead]
- waynesonfire 4y agooh wow, free today, what a deal. Can't wait to pay you tomorrow, once all my notes are in your proprietary system and it's difficult for me to export them.
- noSyncCloud 4y agoLooks like it exports to Markdown and HTML: https://era.sh/blog/update_1.12.0 https://era.sh/blog/update_1.12.0
- ERAAlex 4y agoIf we add a pricing model, we won't force you to pay to have access to your notes - all your notes are stored locally in a sqlite db. You can export them as HTML and MD file.
- waynesonfire 4y agoThat's cool. This looks way better than Evernote.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- chiheisen 4y agoNot FOSS like emacs/vim, same username as product. I dislike calling someone a shill but this is blatant.
- ERAAlex 4y ago
- nnoitra 4y agoVSCode demolishes Vim and Emacs. Want something easier to extend? Write your own editor.
- saltcured 4y agoThe 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.
- anonuser123456 4y agoVisual Studio Code. I don’t know if any comparable editing system.
- esrh 4y agoSome 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/ https://dwm.suckless.org/ [1] https://xmonad.org/ https://xmonad.org/
- tiberious726 4y agoAdding stumpwm to this list---interactively programming your window manager is an amazing feeling
- hulitu 4y agoThere was a time when GWM (generic window manager) was quiet popular. It had a Lisp config language (Wool).
- rozab 4y agoI eventually found my dream WM, and it's Awesome: https://awesomewm.org https://awesomewm.org It's pretty far from suckless philosophy, which for me is a good thing. I think this makes it way more flexible and usable. Great documentation, loads of features, and infinitely extensible with lua configuration. If you aren't bothered by your WM using a few megs of memory then I think it's the best choice.
- clircle 4y agoCurrently using DWM-flexipatch for the last 6 months. Would be interested in learning what features I gain from switching to Awesome.
- Jeaye 4y agoA 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.
- billfruit 4y agoClojure is more lisp for java programmers, than java for lisp programmers. Unless you have your feet well grounded in the Java ecosystem, using Clojure to develop anything meaningful will be somewhat of a struggle.
- zzo38computer 4y agoA 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.
- b5n 4y ago> 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 https://github.com/emacs-tw/awesome-emacs
- deleted 4y ago[deleted]
- lvass 4y agoThere are Emacs packages that themselves have the qualities listed here. GNU Hyperbole, org-mode, calc, org-roam/denote, evil are some examples.
- noobly 4y agoYeah its been described as a virtual lisp machine as well. I use emacs for everything personally, aside from Firefox (which I launch within emacs/exwm). Its hard to go back once you get used to consistent keybindings and commands across your OS. I sure wish RSS was more popular, too. I wouldnt even really need Firefox if that were the case.
- therealmocker 4y agoFor a different application area consider the Minecraft sandbox environment.
- infinitezest 4y agoOr Minetest if you want to go the FOSS route
- TheFreim 4y agoThere's also classicube which is a FOSS implementation of minecraft classic.
- ajvs 4y agoObsidian and Logseq. Both work with Markdown files and have a large number of community plugins.
- viraptor 4y agoBlender is kind of vim/emacs of the 3d world. Especially with its extensibility through python.
- amitprayal 4y agojEdit - Java based editor with lots of plugins and extremely customizable.
- seydor 4y agoblender, 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
- brennen 4y agoVisiData: https://www.visidata.org/ https://www.visidata.org/ WeeChat: https://weechat.org/ https://weechat.org/ fzf: https://github.com/junegunn/fzf https://github.com/junegunn/fzf
- bvoq 4y agoCheck out micro which is supposed to be a modern nano. https://github.com/zyedidia/micro https://github.com/zyedidia/micro
- tpoacher 4y agoOr check out nano, which is actually a modern nano!
- euger 4y agoSurfingkeys https://github.com/brookhong/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.
- listenallyall 4y agoI 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
- t6jvcereio 4y agoSooo.... Am I the only one who thinks this looks like a post promoting "tiddlywiki"?
- jdougan 4y agoNyxt, the lisp enhanced web browser
- galfarragem 4y agoAutocad[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 https://en.wikipedia.org/wiki/AutoCAD [1] https://en.wikipedia.org/wiki/AutoLISP https://en.wikipedia.org/wiki/AutoLISP
- porcc 4y agoMy 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
- dontbenebby 4y agoPico 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) https://en.wikipedia.org/wiki/Pico_(text_editor)