Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by Tehnix on Sunday September 18, 2016 @10:37AM
(#12525472)
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. 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').
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by truncate on Sunday September 18, 2016 @04:29PM
(#12527078)
I always found myself convinced to use some plugin more often after watching some screencast or small gifs. If there are any already it would great if you could link them in project page.
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by shriek on Sunday September 18, 2016 @09:09PM
(#12528150)
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.
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by flukus on Sunday September 18, 2016 @09:18PM
(#12528180)
If you're a programmer, not hard at all. The language is fairly simple and quite powerful these days. It has a few quirks, like variable scoping (global, local, buffer, window, tab), but these are great once you get used to them.
The hard part is learning the API, which takes a lot of googling. Start off writing some helper functions for your own use and turn them into plugins later.
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by Tehnix on Sunday September 18, 2016 @10:57PM
(#12528522)
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.
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by Jeaye on Sunday September 18, 2016 @11:27PM
(#12528653)
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.
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by sooheon on Monday September 19, 2016 @03:48AM
(#12529671)
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.
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by flukus on Monday September 19, 2016 @04:20AM
(#12529786)
> 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.
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by ivarv on Sunday September 18, 2016 @03:40PM
(#12526803)
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?
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by Tehnix on Sunday September 18, 2016 @03:45PM
(#12526831)
>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 :)
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by dvcrn on Sunday September 18, 2016 @09:05PM
(#12528125)
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
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by ceocoder on Sunday September 18, 2016 @07:00PM
(#12527635)
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)
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by aban on Sunday September 18, 2016 @09:37PM
(#12528237)
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…).
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by ceocoder on Monday September 19, 2016 @12:19AM
(#12528868)
I don't think so. In last couple of weeks I've discovered Org Mode, I really enjoy using it. Plus I like working in Emacs Lisp more than VimScript - something I never bothered to learn.
Re:Show HN: SpaceNeovim – Spacemacs for Neovim
by flukus on Monday September 19, 2016 @09:15PM
(#12536224)
I gave it a go for a solid month and went back to vim. I don't believe anybody that likes spacemacs has customized their vim at all, or runs many plugins.
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. 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
[1] https://github.com/Tehnix/spaceneovim
The hard part is learning the API, which takes a lot of googling. Start off writing some helper functions for your own use and turn them into plugins later.
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
[1] http://www.ibm.com/developerworks/library/l-vim-script-1/
Reference to an other project (clone of XY) doesn't help much too.
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.
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.
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 :)
That demo gif of proton looks really neat! Also, awesome to see you're using ClojureScript.
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/
[1] http://spacemacs.org/img/screenshots/ss1.png
[2] https://github.com/ceocoder/dotfiles/blob/master/spacemacs
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
When it becomes a bit more stable it will definitely be something I'll look into though :)