Hacker News new | ask | show | jobs
by arkh 3137 days ago
I love Emacs. But there were no good multimodes 3 years ago. And autocompletion and hints are often a bitch to get working on things which are not C or C++.

The moment you start editing files containing more than one language you're pushed to use a dedicated IDE. And then you discover the joy of "good enough". No need to tinker with config files to get the perfect setup: it works good enough to give you a productivity boost out of the box.

4 comments

Really? I installed Spacemacs and everything "just works". Python, Javascript, Clojure, and Ruby only required to add the appropriate layer to my .spacemacs and restart the editor. Autocomplete, jump to definition, find usages, refactoring, documentation lookups and hints, etc. Spacemacs has been equal to or better than IntelliJ, Eclipse, Atom, VisualStudio Code, Kate, or Sublime out of the box.

which-key being integrated everywhere has made discovery the easiest of ANY editor/IDE I've used. Imagine if there was a consistent place where the menu would pop up if you faltered any key combination. If I'm trying to go a git command in Android Studio (InteliJ) and I forget the command, I don't get part way through and see a popup list of contextual actions. I'm left to move my mouse to the right place, click, and then hope to find my git action in the menu I picked.

More common is the unified way that helm makes dealing with files (you can find similar things in Sublime / Atom / Vim distributions using Unite (or whatever they used these days)). Even though the better editors have this, it's not universal and still a differentiating factor for usability and consistency.

Spacemacs integrates Magit by default. Magit is the first version control interface complete enough that doesn't make me immediately nope out into a terminal for proper git commands.

In my primary projects, I need to edit XML, Clojure, YAML, SQL, Java, Makefiles, and Python files. Spacemacs handles syntax highlighting, autocomplete, refactoring, repl connection and evaluation (where available), project management (makefiles and maven support), and documentation lookups.

+1
I came to the same realization about Vim about a year ago. I've used Sublime and Vim/Nvim extensively, and I've spent at least a few hours in Textmate, Emacs, Spacemacs, Notepad++, VS Code, and Atom as well.

All of those text editors above have some excellent and unique redeeming qualities. But at the end of the day their actual language support tends to be weak.

Now I do Python work in Pycharm, R work in Rstudio, and SQL work in whatever IDE goes with my database engine. I use Nvim as my system $EDITOR but at work I'm using it less and less often. I love it and I'll never give it up, but it's becoming more of a hobby tool than something that helps me get things done.

I'm hopeful that https://github.com/Microsoft/language-server-protocol will decouple some of these concerns. We've built support for it for our DSL, and it's pretty great so far (esp in VSCode). Emacs LSP support is still pretty slow, so I don't use it when in emacs at present, but it feels like the right direction for getting good language support into editors.
LSP seriously gives me hope for the future. It is an awesome project, and I'm looking forward to seeing more widespread editor support for it.

It's still fairly new so most solutions I've seen that use it still have some sharp edges.

PyCharm is excellent.

I've gone pretty deep into both vim and emacs over the years, and so it always hurts a little when something like PyCharm comes along, and it works better, and does more out of the box than any finely tuned emacs/vim setup (which often take significant time investments).

You should really give the IdeaVIM plugin a try. I use it in several Intellij editors, PyCharm included, and it is terrific. It has a few quirks and discrepencies from VIM, but it is a far better text editor than the editor that comes stock in any other IDE.
I'm grudgingly coming along.

I use vim for everything, but Intellij (because we have the licenses; I mainly use it for Python at the moment) has my attention. Wish I had more time to learn it; it has been a couple of months and I still don't feel really comfortable. But the capabilities actually make a difference.

Vim is never going away for me; muscle memory, if nothing else, ensures it will always be the most efficient way for me to type text and I spend most of my time in the terminal anyway. And as nice as it was when it was my go-to for everything, there are times when a special purpose editor has a place.

Though not perfect webmode is usable for multimode editing.
I mean, I use autocomplete for work in python, ruby, golang, C/C++, JavaScript, coffeescript, CSS and probably more in enacts.

The trick is the setup, but I've only had problems with minor edge cases (like coffeescript 2). Either way I'll spend an hour and use Elisp to fix it. Really nothing I've found is even close to as robust

I've been using spacemacs for nearly 2 years now and autocomplete has mostly always worked right out of the box after installing the corresponding layer. I rarely even need to reboot Emacs.
I'm reading this on Spacemacs right now! It's excellent - it removes a lot of the initial configuration investment required to be productive, while letting you customize as deeply as you want if that's necessary. Plus, it has vim keybindings out of the box ;)
Just curious... Does spacemacs only offer Vim keybindings, or does it support Vim macros as well?
Evil mode itself allows for keyboard macros. I do believe there are ex-mode things that won't work but most users never even touch this stuff (i.e. if you press Q in vi/vim).

Spacemacs by extension integrates evil mode entirely, so keyboard macros are available.