Hacker News new | past | comments | ask | show | jobs | submit login
Emacs 25.2 released (gnu.org)
80 points by wontoncc on Apr 21, 2017 | hide | past | web | favorite | 13 comments

For people who are thinking "I like to try but i dont know how it will be useful since i use IDE XYZ all day", start with org-mode. Think org-mode as a tool to manage your todo lists, although it it much more than that.

To a developer not familiar with Emacs, I'd first recommend to start with Spacemacs so they don't have to configure anything nor learn Emacs shortcuts... then Magit (shipped as git layer in spa Emacs)... and then org-mode. I had a few developer friends of mine starting to use Emacs (Spacemacs) solely because of how good Magit is.

Projectile is a great tool too. Along with helm and perspective modes, you can switch between projects with a few keystrokes. Since projectile looks for .git by default, you can have a window in each perspective dedicated to git if you so wish.

Updating code across multiple projects and committing is so easy and frictionless.

I have been using helm and projectile to easily find files. How do you use it to make edits too?

Press C-z. Multiple edits can be achieved through marking in helm. I need to get a grips with this part myself - sometimes it's just easier to use dired.

Have you figured out how to switch between recent list and other match lists? Sometimes get stuck when a prefix matches bang on in recent and need to get to the other matches.

No matter how many IDEs I try I always come back to emacs. I am spoiled for life.

Emacs and vim are the only editors I have found, where I can disable syntax highlighting while highlighting certain terms/expressions without losing syntax support (indentation, ...).

What keeps you coming back?

To me, the appeal is that emacs is not so much a text editor, but a development and runtime environment for a custom programming language that happens to be designed with building text editors in mind.

For practically any given programming language I might want to use, emacs either supports it out of the box, or there is a package available that makes emacs support it.

Plus, it is kind of an integration machine in a much more comprehensive sense than most IDEs - inside emacs, I can run a shell, a web browser, a mail client (although I don't do that), a file manager, an IRC client, an audio player (including last.fm scrobbling!), read xkcd, and much more (don't get me started on org-mode, I am still just beginning to scratch the surface of that).

Being able to use it for so many purposes means that all the skill and muscle memory I acquire in using it pays of many times over across all those use cases. Any customization or extension I make is potentially available across all those use cases.

Thanks, nice comments. I have used Emacs since the late 1980s, but I also "live" in IDEs like IntelliJ and RubyMine.

Over the last year I have been spending more time (again) in Emacs to the point where I am not even renewing my JetBrains yearly licenses.

Sorry if this is too off topic, but I have been reading computer scientist Cal NewPort's books (Deep Work, and Be So Good They Can't Ignore You) and he talks a lot about craftsmanship. Automating our workflows seems pretty much core to craftsmanship and it is probably easier to do this in Emacs than writing IDE plugins.

Nicely put... wish I had tried Emacs sometime. I can relate to what you are saying as I use Vim commands/shortuts everywhere from my Window manager, browser to custom key mapping of lkjh for arrow keys on my ergodox keyboards..

If you want to dip your toes in the water, I recommend Spacemacs. It uses VIM key bindings by default, and it goes to great lengths to help you find the functionality you're looking for.

A few things I really like:

1) I can very quickly arrange the workspace with whatever windows in whatever shape next to each other for viewing multiple code files. Some IDEs have split windows, but they are never as flexible as emacs, and the ability to save window configurations, launch entirely new frames, quickly jump back and forth between window layouts, makes me very productive. And of course, doing all of this without ever touching my mouse.

2) Yasnippet. The ability to write syntax completion logic for commonly used idioms really takes a ton of typing out of my day. Several IDEs support snippets in various forms, but I've never seen any as flexible as the yasnippet plugin, which is extensible in lisp. It has been much more useful for me than generic autocomplete.

3) Quick font zooming. I like being able to enlarge a font with one keystroke rather than jump through menus. Late at night when my eyes are tired, I can make everything bigger, or if I want to fit an entire coding file on the screen to see its full API, I can make just that split have a tiny font, off to the side, while my main coding split has normal font. And I can do all of this in approx 0.5 seconds.

4) Vim macros. I use evil mode in emacs, and many say its Vim bindings are better than vim itself, somehow. I use vim macros every single day, they do so much to save time when refactoring.

5) No buttons or nonsense on the screen. Just code. Literally no part of my laptop window has any space that is not used for coding, yet I can navigate better with all the keystrokes.

6) Automatic support for any language I wish to try, with proper syntax highlighting, indentation and all you'd need to edit code. Bash, C++, CSS, HTML, Javascript, Python.. heck recently I decided to try Erlang and the emacs mode for Erlang is a full IDE with automated builds and editing.

7) Undo Tree. Another little plugin that makes navigating your entire edit history easy, with all the branches in your workflow.

8) Ace Jump or similar (I'm not sure which of these I actually use, it's just in my muscle memory). With a single keystroke, jump to any word in any code file on the screen. If your eye can see it, you can jump right to it without navigating line by line or switching windows.

There is so much more but these come to mind. Every time I try Xcode or Sublime or Vim itself or Brackets or Eclipse or any of myriad other IDEs I instantly miss the raw basics of how text editing should be, especially when working with code files.

I will admit that I used emacs every day for at least a year before I came to find it so indispensable, because the learning curve and rewiring how you think about text editing is non trivial. Emacs is a lot like New York City. When you first move there, you think how the heck can all these people live this way?! Many people don't last too long and leave within a couple years. But those who keep at it and live past a certain threshold of time will often never leave. And if they do, they will miss it terribly.

Emacs is famous for two tools in particular, Org Mode and Magit. Ironically, I don't use either at all, yet still find it critical to my professional life.

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