Spacemacs 0.105.0 released
github.com
github.com
First one was four years ago, my configuration was rendered completely useless after starting to use OS X and I didn't know where to start, so I forked https://github.com/purcell/emacs.d and rebuilt my config on top of it.
Second one was because every time I take a break from a language like Clojure and Haskell for three months and then get back to it my config for the relevant modes get obsolete. Spacemacs has a big community that continuously adapts language layers to the changes on upstream and provides the best experience for development behind a few flags like "(haskell-enable-ghc-mod-support t)".
After switching to spacemacs my configuration went from 2023 lines of code in the original config I forked + 1005 lines of my own to a .spacemacs.d/init.el file that's 243 lines long (without comments). It provides 90% of stuff I want out of box, and provides many more features I never discovered/configured and most importantly it takes the burden of maintaining stuff I only occasionally use from my hands.
If you are not happy with some stuff fundamental to Spacemacs such as Helm I don't recommend it but otherwise give it a try, it is really easy disable Evil integration if you are used to regular Emacs keybindings.
Spacemacs still leaves a lot to desire. But it's pretty damn close to be the perfect all-in-one text editor I've been looking for.
It was not made for you. If you want to change or automate something, you have the option of either getting Emacs or Vim to do that for you, but only whatever you need.
That's what spacemacs is, in a nutshell. It attempts to marry the keybindings of vim with the technical advantages of emacs (better process handling, server/client setup, etc)
The whole point of Spacemacs is integrating things together around evil-mode in its only little package that's ready to go. If you don't have any interest in evil-mode, then I doubt that Spacemacs is for you.
If you've been using emacs for 20 years and already know how to do stuff and maybe even write your own modes, then it's proooobably not for you. (I mean, you coulda been using evil a long time ago).
The Spacemacs layer setup does restrict you to what it supports, unless you want to do things manually.
it's much more than just viper, but the ultimate goal is the same: to provide emacs with vim keybindings for prefer to want to use emacs that way.
Getting the dev email list to agree to a change of something that is easily added through packages or just init.el/emacs.d/ is difficult if not impossible. But this is a good thing: opinionated workflows are adaptable but not forced on seasoned veterans and newbies alike. Getting good packages into elpa or tasteful additions into core that augment emacs is always welcomed it seems.
Join the development list and just follow discussions. It's always fun to see really smart people talking about new code, extensions, opinions, and the new maintainer John seems to want to do a good job and produce some nice software. I've got it going to my gmail under a label and never filling my inbox so it gives a nice reading break every now and then at work.
But being non-core is not really a barrier to installation in my opinion. In many ways it is a plus, allowing for out-of-cycle releases and to experiment / break compatibility at their own pace.
Although Spacemacs does have a "Holy mode" which will keep the Emacs bindings and won't use vim-like keys.
Using two languages: C and scheme (preferably R7RS-small).
I have quite a few resources to create a vi/vim like editor from scratch (vis, some python projects, etc) but non in the scheme+C arena along emacs lines.
Emacs project itself is a bad example of studying the architecture of such an editor because of its humongous codebase (~250 kloc C, ~1.2 Mloc e-lisp) unless someone has done a good write-up about how to get familiar with architecture and extensibility infrastructure.
[0]: http://bellard.org/qemacs/
[1]: http://homepage.boetes.org/software/mg/
Also, you could take a look at these:
http://www.emacswiki.org/emacs/EmacsImplementations
https://wiki.gentoo.org/wiki/Project:Emacs/Emacs-like_editor...
As it is written, that is space then macs.
I was wrong this whole time. I always pronounced it like "space emacs" or "spacey-macs" if you will.
But really, I thought it was just "space-macs"
7~ years using vim 4 years using emacs
enjoyed modal editing in vim, got very good with it enjoyed how easy it was to program/debug emacs tried setting up evil, wasn't up to the task of configuring it
With both Emacs and Vim I had trouble having to upgrade my configs too often, but that's not necessarily their fault.
It could just be a coincidence of timing, but Spacemacs gives me most of what I want by default and makes it easy for me to customize.
I will say that the Emacs graphic rendering bug which causes pathologically bad performance on long lines has been biting me a lot using Spacemacs to do Golang development.
I've been using regular old Emacs for about 20 years. For those more familiar with Spacemacs, how hard is it to accomplish some of what it does, or transition to a more normal Emacs setup once you get to like Emacs?
Edit - this is just out of curiosity. I hope to use Emacs for another 20 years at least :-)
The important things that simulated the Spacemacs feel for me were these packages: helm, hydra, and powerline. I haven't yet grokked modal editing, so I don't have any experience with vim/evil.
I think if you had a very customized emacs setup, you'd have to put some effort organizing it into custom "layers", which is how spacemacs organizes its config and making sure you don't have big conflicts in mapped keys.
I've found emacs to be reasonably pleasant even for things like git operation (via magit). Most of my scripting for projects end up written in python or bash and controlled via a Makefile, and emacs (like vim) fits in perfectly for this. There is very little I use a terminal for these days, and when I do want one, I open it inside of emacs. This keeps me down to emacs + chrome as my only applications running.
I still kinda miss vim -p (and I am not a huge fan of eyebrowse as a replacement for vim's tabs), but that very much solved the speed issue for me.
I had some trouble with it: things that only work with a fringe, the theme colors all mixed up, even putting a sensible line number background. And after quite quite some time trying to fix it I decided it was just not worth it and started an emacs config from base (I come from Vim). Now I'm quite happy.
Also, I go back to spacemacs git repo to get ideias, tips for my own emacs config.
The main problem is customization. Even though Emacs Lisp and the Emacs ecosystem allows for a more organized and advanced setup, there are so many options to do any single thing.
Add to that the newbie-unfriendly documentation, you end up spending way too much time trying to understand how to customize things properly, or at all. Whereas with Vim, if I had a simple customization idea, I would just google it, find a solution in 2 minutes and slap a few more lines in my 1k LoC .vimrc.
You can launch an evil-tutor to start with Vim key bindings by pressing `SPC h T`.
The details seems to be here: https://github.com/syl20bnr/spacemacs/tree/master/layers/%2B...
Just install evil mode and a few contrib packages.. that's spacemacs lite.
Yes. However one of the most attractive features of spacemacs is... that somebody has selected the packages and installed them for you! You don't have to do anything!
I also use webstorm 11 as my emacs skill is insufficient to graduate to apprentice neckbeard. my apologies.
If someone has a simple fix to this problem I would gladly use it since they seemed to have the right ingredients for a top notch experience.
alias emacs="emacsclient -nw -a ''"
is the best I've found.-nw: Open a new frame in current terminal (otherwise it just opens the file in whatever other emacs window you already have launched).
-a: Start the daemon if it isn't running.
'': Little trick so you can launch it without a filename.
-a: Start the daemon if it isn't running.
'': Little trick so you can launch it without a filename.
Ha, if only. From the bit on `-a` in https://www.gnu.org/software/emacs/manual/html_node/emacs/em... : Specify a command to run if emacsclient fails to contact Emacs. This is useful when running emacsclient in a script.
As a special exception, if command is the empty string, then emacsclient starts Emacs in daemon mode (as emacs --daemon) and then tries connecting again.
`emacsclient -a vim` will run vim if it can't connect to a running daemon.