Ask HN: Are there any modern alternatives to VIM and Emacs Hacker News 3 points by 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?
Note: If you visit this page on a Mac, you will see the key bindings for the Mac. If you visit using Windows or Linux, you will see the keys for that platform. MacOS Sublime Keybindings Reference for the AWS Cloud9 Integrated Development Environment (IDE) Following is a list of Sublime keyboard mode keybindings for MacOS operating systems in the AWS Cloud9 IDE.
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.
Mac Install Sublime
They are open source and run on almost anything. 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.
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. 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. 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: 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.
Structure of a Key Binding Key maps are arrays of key bindings. Below you’ll find valid elements in key bindings. Keys An array of case-sensitive keys to be pressed. Modifiers can be specified with the + sign. Chords are built by adding elements to the array, e. Ambiguous chords are resolved with a timeout.
Command Name of the command to be executed. Args Dictionary of arguments to be passed to command. Keys must be the names of parameters to command.
Context Array of contexts to selectively enable the key binding. All contexts must be true for the key binding to trigger. Here’s an example illustrating most of the features outlined above.
Sublime Keybindings For Mac Download
Context Operands autocompletevisible Returns true if the autocomplete list is visible. Hasnextfield Returns true if there’s a next snippet field available.
Hasprevfield Returns true if there’s a previous snippet field available. Numselections Returns the number of selections. Overlayvisible Returns true if any overlay is visible. Panelvisible Returns true if any panel is visible.
Followingtext Restricts the test to the text following the caret. Precedingtext Restricts the test to the text preceding the caret.
Selectionempty Returns true if the selection is an empty region. Setting.x Returns the value of the x setting. X can be any string.
Sublime Keybindings For Mac Free
Text Restricts the test to the line the caret is in. Selector Returns the current scope. Bindable Keys Keys may be specified literally or by name.