Hacker News new | ask | show | jobs
Ask HN: Are there any modern alternatives to VIM and Emacs
3 points by eliah-lakhin 4491 days ago
Hi folks,

I would like to know are there any good and modern alternatives to the most popular terminal-based editors such as VIM and Emacs?

Thing that I'm looking for is something like Sublime Text. So keybindings should be more or less familiar for the Windows/Mac users(i.e. copypaste through the cmd+c/cmd-v), but I want to run it in terminal/unix environment. This is very important for me.

I know about Nano, but set of code manipulation features is too poor. I want a rich set of "advanced" features like we have in Vim/Emacs.

Any suggestions?

7 comments

Sublime Text is pretty and fairly easy to use. I own a copy. However, I would seriously recommend that you take the time to learn Vim or Emacs. I've used both, extensively, and can recommend either without reservation. They have slightly different strengths and weaknesses that lead to endless comparisons, but neither one would be a mistake to learn and use as your primary development editor. I currently use Emacs.

Both Emacs and Vim require an investment in time to become productive. The break even point, where using the new editor is finally not too frustrating to use, is a few days for either one. Make that investment in time. After a few weeks the power that these editors provide will start to open up, and after a year, you will feel like no other tool for editing that can touch what you can do with these thoroughly professional tools. If you care about your craft, take the dive and learn a first class tool. They are open source and run on almost anything.

Hm... What can you say about Textadept? For the first glance it seems like a good alternative with lesser entry barriers. At least comparing with vanilla vim and emacs.
Thanks for pointing out Textadept. I'm going to take a look at it. Lua seems almost ideal as an extension language, and it would be a more familiar language than Emacs Lisp for most programmers. I want to look at what Textadept does about Unicode; Lua doesn't yet support it very well (although there are libraries for using Unicode).

It would still be beneficial to learn Vim or Emacs. The scale and breadth of add-ons for these environments is staggering. This makes getting started seem difficult, but one can simply focus on learning the basics (which are all that are offered by most competing editors). There are good tutorials for both Vim and Emacs built into the editors. It will only take an hour or so to go through one and learn the keys and commands for straightforward editing.

Another way to get started would be to start with a stripped down emacs. Although I use GNU Emacs, there are simpler implementations. I like mg. Its a micro-emacs that supports most of Emacs's common commands, but has no extensibility. It's definitely not a toy, and might provide a nice stepping stone to full GNU Emacs. It runs in a terminal, starts up instantly, and has a small footprint. On a Mac, I install it with homebrew. Microemacs is the editor reported to be used by Linus Torvalds.

You should know that most people would probably consider vim as sufficiently "modern" -- it is actively maintained and still useful for many. 'vi' is the old school predecessor...

I believe vim has an "easy mode" which allows it to work as a more traditional non-modal text editor. You may want to give this a shot and then slowly ease yourself into the key chords.

I didn't say that "vim" is not modern. And I know that many people find it useful. Moreover I use it myself quite often since it is my default console editor. But I found it not so useful for myself as a primary editor. There are reasons that I prefered to skip in the root message to avoid starting of flame war.

But I'm wondering why people keep teach me and advice me how to use vim and emacs? I didn't ask any advices on these two editors. I just asked about alternatives. Maybe not so famous alternatives, but anyway.

I respect your feelings on your favourite editor. And I don't claim you to change your mind about it, nor I want to change mine. I just asked about alternative products.

> alternatives to the most popular terminal-based editors such as VIM and Emacs?

Emacs for X11 (Lucid or Motif bindings), and gvim of course.

Hey, but they are GUI based, arn't they? :) I want to use it in my terminal through the SSH on remote machine.
So ... what is it you find lacking in Emacs or Vim? Perhaps if you tell us that we might be able to help.
I actually didn't work with Emacs, and I tried Vim a little. The major reason why I gave up is learning curve. Keybindings(especially in Emacs) are too unfimiliar for windows/mac user like me. And I don't think this is a good idea to remap all shortcuts(I'm not a big fan of customization).
An interesting conundrum: f you don't feel like learning, can we suggest anything actually useful?
oh, comeone! I didn't say I can't/don't want to learn anything. I just said that learning barrier in case of Emacs specificially is too high for me. I don't want to spend that much time on code editor. But it doesn't mean I don't want to learn at all.

To be more specific, if Emacs would have more familiar keybindings for Windows/Mac users I probably use it. For example from the manual http://www.cse.iitb.ac.in/~br/courses/cs699-autumn2013/refs/... :

> C-e end of line

Why not just "end"?

> M-v scroll down one page

I would like to use "page-down" instead.

> C-Space Set beginning mark (for region marking for example)

Really? Why not just press "Shift"?

ok, ok, I know that old keyboards didn't have all these buttons, and also Windows "familiar" key bindings were defined much later. So Emacs and Vim developers did what they did. But why should I spend so many time in learning all these oldschool workarounds?

Yes, I want terminal-based editor. But the rest of the killer features of Emacs or Vim are not so unique these days. I can obtain near the same level of functionality and flexibility in any modern window-based editor such as Sublime Text or IntelliJ Idea. Currently I'm using this one as my primary code editor - just for text, not for Java. And I find that it has even wider range of handy code manipulation commands than Emacs provides.

So, returning to my question. I would prefer to choose terminal-based code editor. And it is ok if it will be differ from the editors that I use - I'm ready to spend time in learning new stuff. But I'm not ready to learn code editor completely from scratch. That's why I rejected Emacs. ok, maybe I was wrong, so I would like to hear your opinion.

I suggest learning Emacs because of the extensibility and the huge amount of plugins available. I don't think it would take more than a few hours to get accustomed to basic editing in Emacs (moving with C-n C-p C-f C-f, and searching as a way of navigating the file, also opening and closing files -- this should be enough to get you started).

I just tried the keys you mentioned in Emacs: they all worked (except for selecting with Shift). So End takes you to the end of the line, you can scroll using PgUp and PgDown. The reason that they are not used is that you need to get your hands of the home row to use them, which makes them unbearably slow for people used to quick editing.

I hope you'll give it a chance.

> I just tried the keys you mentioned in Emacs: they all worked (except for selecting with Shift).

Selecting-with-shift works in Emacs too.

[It was added a few years ago so might not work if you've got an ancient version installed...]

You might like http://www.ergoemacs.org/ Anyways there's probably tons of plugins that would change key bindings to something that you'd like more. Might also want to look into cua-mode.

Maybe you can tell us why you need it to work in a console. Do you only want to edit files over there? Could try sshfs. If you're able to use X11 on your servers you might look into X11 forwarding through ssh to use Sublime too.

> Maybe you can tell us why you need it to work in a console. Do you only want to edit files over there?

Well, I'm using Windows on my primary machine when I'm at home, and Mac when I'm outside. It's not a secret that Windows is bad as a development environment. Even it's file system has issues in mapping to unix fs. So I prefer to keep all my development things on remote Linux machine, and work through the SSH. That's why I'm interesting in terminal-based editors.

Page-up and page-down work fine in emacs. Home and End move the cursor to the beginning and end of the line, respectively.

It's clear you haven't even tried it.

Take a deep breath. Pick and editor and try and use it for a week.

I know that these buttons work too. But this is not a convenient way of using Emacs.
no.

really, just tested the latest batch of editors. none came even close to replace vim.

just learn to use shortcuts customization.

I'm trying Textadept atm. What pros/cons can you say about this one?
What about Sublime Text?
There are some pitfalls, but generally I like it. The only reason I don't use it as my main editor - it is not terminal based.

I mean, for example I want to run the editor remotely connecting to remote server through SSH. And the editor should work with the remote file system natively. I can't do it with Sublime Text(or not?).

Nah, it's going to be between vim and emacs if you want to do that seamlessly. Try installing tmux though.
vim-spf13 is the way to go.

I cannot believe how beautifully easy it is to hit the ground running. Incomparable.

Except for maybe LightTable, but I'm constantly running into PATH issues. So I will settle (is it really "settling"?) for PythonMode in vim.

I will take a look. Thank you!

I suppose keybindings and modes are the same as in vanilla vim?

Keybindings are the same, motions the same — but you should expect more motions (vim-easymotion), a lot of other great plugins, and a very enhanced <leader>-space.