
Show HN: SpaceNeovim – Spacemacs for Neovim - Tehnix
https://github.com/Tehnix/spaceneovim
======
Tehnix
Just to share a little about the motivation of this:

Switching back-and-forth a bit between Spacemacs and Neovim, I got inspired by
spacevim[0] and thought to myself "Hey, that's a great idea!", and so I went
into my first time actually toying with vim script (love-hate relationship
atm).

The result of the last couple of days so far is the ground work for a Neovim
specific port of Spacemacs, SpaceNeovim[1].

The major difference between this and the existing spacevim is that the layers
are separated out from the core, and can be updated via an editor command
(calling git pull). It makes it a lot nicer to add new layers later on (oh,
and of course also the fact that I've dropped any though of vim support).

Contributions or feedback are more than welcome! :)

The easiest way, if you want, is probably to contribute a layer, or expand on
an existing one at [https://github.com/Tehnix/spaceneovim-
layers](https://github.com/Tehnix/spaceneovim-layers). One of the goals is to
match Spacemacs more-or-less, so switching isn't annoying (hence why
buffer/filetype specific keybindings are behind a '+major-mode-cmd').

[0] [https://github.com/ctjhoa/spacevim](https://github.com/ctjhoa/spacevim)

[1]
[https://github.com/Tehnix/spaceneovim](https://github.com/Tehnix/spaceneovim)

~~~
shriek
How much of an investment is to learn vimscript? I want to write some plugins
but I also don't really feel like learning it. Wish I could use different
langs but from what I'm hearing I'd have to learn vimscript anyway.

~~~
Tehnix
Not that much to be honest, there are some quirks and such as variable
scopings (g:, s:, l: a:) and other things, but other than that it's pretty
familiar.

A few great resources I found after having googled a ton around was [0] and
[1]. If you are very familiar with vim (I'm not really a power user tbh), then
all the commands you use with : are supported in vim script. Meaning opening a
split in your script is, well, just split.

[0]
[http://ricostacruz.com/cheatsheets/vimscript.html](http://ricostacruz.com/cheatsheets/vimscript.html)

[1] [http://www.ibm.com/developerworks/library/l-vim-
script-1/](http://www.ibm.com/developerworks/library/l-vim-script-1/)

~~~
shriek
That cheatsheet is really well done. Thanks for that.

------
Jeaye
Having spent a month with Spacemacs, to give it a shot, and returning back to
Vim, I've been craving some of the Spacemacs innovations. Unfortunately, we
can't get elisp, which is a big selling point of Emacs for me, but Spacemacs'
narrowing search menus, following SPC, and its community-configured layers
make it often enjoyable to adopt a new configuration.

It comes at a cost though, the abstraction. Many say "the Spacemacs source is
so readable; if I want to tweak something, I can just find what I want and go
from there." In practice, I have never found this the case (likely since I've
used Emacs for only 2 months) and I don't imagine I'd find it the case with
SpaceVim/SpaceNeoVim either, even after having used Vim for half a decade. As
a result, I consider these projects to be a more robust vim-sensible, which is
a reasonable starting point, or common point, for new users, users who want to
share a single configuration, or users who don't desire absolute control and
just want some features to work (i.e. everyone but power-users). Fortunately,
that suits a lot of people. More power to them and good luck to SpaceNeovim.

~~~
flukus
I really don't think elisp is particularly better than vimL. Emacs just
exposes a lot more extension points than vim does.

~~~
sooheon
That's really putting it mildly. Being able to evaluate any valid elisp form
anywhere, directly or from a buffer, and affect the running state of the
application, is pretty damn powerful. There is a point where the quantitative
difference ("more" extension points) becomes so overwhelmingly large as to
become a qualitative leap.

~~~
flukus
> That's really putting it mildly. Being able to evaluate any valid elisp form
> anywhere, directly or from a buffer, and affect the running state of the
> application, is pretty damn powerful.

That's possible in vim too. You can manipulate variables (end redefine
functions if you're sadistic) in ex commands. Similarly, every time I save a
vimL file it parses and updates running scripts.

------
ivarv
This looks cool. I've been transitioning from an untidy, cruft-filled personal
.vimrc to spacemacs but I find myself running back to vim frequently as I
haven't learned the analogous key strokes for all of my basic usage/workflow
yet. It looks like SpaceNeovim is still implemented in VimL; since Vim support
is dropped, any chance switching to a Lua implemention?

~~~
Tehnix
>an untidy, cruft-filled personal .vimrc

Yeah, that particular itch is also one I'm scratching with this project - the
.vimrc/init.vim quickly become cluttered.

>any chance switching to a Lua implemention

I'm more than open to it honestly. Initially I wanted to flesh out a bit of
what was achievable, and since a lot of the layers mainly consist of
configuring plugins and key mappings viml seemed easy to start with.

It's definitely something I'm looking into though :)

------
dvcrn
Another shameless plug but I'm the author of proton. We are doing something
similar and porting a spacemacs inspired way of editing to atom. Check it out
[https://github.com/dvcrn/proton](https://github.com/dvcrn/proton)

~~~
aban
It's pretty cool to see all the similar projects in this thread.

That demo gif of proton looks really neat! Also, awesome to see you're using
ClojureScript.

------
meitham
Shameless plugin [https://github.com/meitham/vim-
spacemacs](https://github.com/meitham/vim-spacemacs) where I try to use many
spacemacs keys in vim.

------
city41
Can someone give a quick summary of what spacemacs and spacevim are?

~~~
ceocoder
Spacemacs is a supercharged version of emacs configuration set (~/.emacs.d),
it makes Emacs look like this[1]. Spacemacs sets <SPC> as your leader key and
turns configuration into "layers", each layer being a set of packages,
keybindings and functions you can use.

Here is my .spacemacs file[2], I've been using it for last 45 days, before
then I was pure Vim user for all my text editing and programming needs (except
Java - where I still use IntelliJ)

[0] [http://spacemacs.org/](http://spacemacs.org/)

[1]
[http://spacemacs.org/img/screenshots/ss1.png](http://spacemacs.org/img/screenshots/ss1.png)

[2]
[https://github.com/ceocoder/dotfiles/blob/master/spacemacs](https://github.com/ceocoder/dotfiles/blob/master/spacemacs)

~~~
hossbeast
Do you see yourself going back to vim?

~~~
aban
Not the parent, but thought I'd share.

I discovered Spacemacs in the beginning of my transition from vim to Emacs,
and its familiar keybindings and "out of the box" experience really helped me
stick with Emacs. These days I use my own Emacs config but that's not to say
Spacemacs is not great.

The only times I use vim these days is to quickly edit a file when I ssh into
other machines from anywhere other than my laptop. On my laptop, I use Tramp
Mode[0] for accessing/editing remote files.

For programming Emacs is superior to vim for me personally; and even more so
because my whole workflow is based around Emacs (coding, email, shell, Org
mode, etc…).

[0]:
[https://www.emacswiki.org/emacs/TrampMode](https://www.emacswiki.org/emacs/TrampMode)

------
shantanugoel
Does it work on windows with the neovim windows executable?

~~~
Tehnix
Unfortunately I haven't tested anything on windows yet, but I'd imagine there
might be some quirks with curl and git.

When it becomes a bit more stable it will definitely be something I'll look
into though :)

------
ungzd
So postmodern!

