Hacker News new | past | comments | ask | show | jobs | submit login

I find it much quicker to navigate buffers in Sublime. Code completion is usually built-in, both html and variable names in whatever language I'm developing (eg div<TAB>). Multiple cursors are great too.

I'm sure Emacs has modules for whatever or I could build it, but why waste the time. I'd rather pay someone to provide a solution that saves me time. I still keep emacs open for macros. Emacs is great for defining a keyboard macro and repeating it's 1000 times.




Emacs's keyboard macros are one of its weaker areas, IMO. C-g cancels recording, but if you accidentally invoke the wrong command and end up in a minibuffer prompt, C-g is the reflexive way to get out of it - terminating the record. So you need to enter your command sequence with zero errors and no use of C-g for it to be of any use. I find multiple cursors more usable in practice, since you can see the results of various navigations simultaneously (at least for those instances that are visible on screen).

I use emacs because it functions the same on Windows, Linux, OS X and Solaris, all the platforms I use across work and home. I use it in the terminal rather than the GUI, because then it functions the same whether over ssh or locally - and no, TRAMP is not quite good enough. And finally, I use emacs because I've had it with learning a different IDE every couple of years. At this point, I want to invest my muscle memory and macro library in something with some longevity. I want something where getting my settings and modules all installed is no more effort than a git clone.

If I could pay someone for something that did all this for me, I would, but the solution would look a lot like emacs: highly scriptable, with a consistent terminal interface across all 4 platforms I use. Ideally it would use a much stronger, faster version of Lisp, although its dynamic scope lookup is actually convenient for layering new behaviour on top of existing code.

(On switching buffers, I use helm + projectile, which does incremental filtering search over file names. For navigating projects, I find helm-git-grep is often more useful than trying to remember a file name - this is an incremental regex search across the whole project, using git grep. No other IDE I use is quite as quick to switch buffers as my emacs config.)


Multiple cursors only seem to work for simple things, which is good enough a lot of the time. However, incremental search in a macro is very useful, for example.

C-( do-searching-ESC-deleting-etc C-)

There's a new Emacs StackExchange: http://emacs.stackexchange.com

Maybe it'll become enough of a database that it'll be much easier to figure out how to add the "missing" features in Emacs. Currently 720 questions. Let's see how often it's used.


What you would do with an incremental search inside a macro, I'm much more inclined to do with a regex search and replace. I generally only use search at the end of my macros, to find the next "instance" that need to be run over.


I don't know about vanilla emacs (because I don't use it), but when using emacs in evil-mode, you can record a macro to a register and then edit the register. That way you can correct your mistakes. You can also append to registers and combine registers, so you can continue recording macros where you left-off.

Since evil-mode is a vim-emulation mode for emacs, the above is possible in vim as well.


You can dump your macro to elisp without difficulty. That isn't the problem. Keyboard macros are at their best when you get to use all the regular keys that you normally would, so that you can reuse everything you already know, without having to learn a whole other set of commands. Both editing the resulting macros, and needing to treat C-g as fatal, break this.


I tend to jump straight to Emacs Lisp for anything more complex than trivial keyboard macros. It's well worth learning how to perform text manipulation in that environment.

I once programmed Emacs to convert an entire component of Windows Phone from Hungarian notation to something saner.


I do too. Trivial macros come up very often when I'm using editors other than Emacs - I'd typically create and play back one every few minutes in other editors - but far more rarely in Emacs. Like I said, multiple cursors fills a very similar hole better, because it's not as sensitive to a C-g in the minibuffer.


I don't know how much faster navigating a buffer can be than doing it in emacs or vim, both of which can switch buffers with the press of a single key and do fuzzy-matching of buffer/file names with a keystroke or two. They can also navigate by moving or clicking around tree-structured directory trees, through menus, and many other ways.

Again, it would be nice if people offered specifics when they described something another editor could do that emacs or vim allegedly couldn't. How exactly do you navigate a buffer in Sublime that's allegedly "much quicker"? Can you give an example (including exactly which keys you press and exactly what it does in response)? Or can you at least show a video demonstrating this navigation?

As for multiple cursors, both vim and emacs have had them for years.[1][2][3][4][5]

[1] - https://github.com/terryma/vim-multiple-cursors

[2] - https://www.youtube.com/watch?v=Umb59mMvCxA

[3] - https://www.youtube.com/watch?v=NYzGBnsJ-eg

[4] - https://github.com/magnars/multiple-cursors.el

[5] - https://www.youtube.com/watch?v=jNa3axo40qM


Cmd-t to be prompted with a list of buffers in the most recently visited order. It has a filter too. Sometimes I just look at the nav buffer on the left. Kind of depends.

What's the fuzzy match in Emacs? C-x b?

Why don't multiple cursors ship with Emacs? I'll give it a try.


In emacs, I use helm[1][2] and BufferSelection (aka "bs")[3] to do the same thing, only helm is much more powerful and does a ton more than just that. In vim, I use MRU.[4]

But neither emacs or vim are limited to buffer selection using this relatively primitive method (which I do like and use myself). You can select buffers using an almost overwhelming number of methods and plugins.

You can filter, use regular expressions, use timing, use fuzzy matching, by buffer contents, color buffers in buffer lists using various criteria, etc. Here are some options for emacs: [5][6]

Both vim and emacs can bind pretty much anything to any key, so you can use Cmd-t for any of those (or a function key, if you preferred something that requires only a single keypress) or virtually any other keystroke.

[1] - http://www.emacswiki.org/emacs/Helm

[2] - https://github.com/emacs-helm/helm

[3] - http://www.emacswiki.org/emacs/BufferSelection

[4] - http://www.vim.org/scripts/script.php?script_id=521

[5] - http://www.emacswiki.org/emacs/SwitchingBuffers

[6] - http://www.emacswiki.org/emacs/CategoryBufferSwitching




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: