7 ms·
Show HN: SpaceNeovim – Spacemacs for Neovim
- Tehnix 10y agoJust 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
- truncate 10y agoI 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.
- shriek 10y agoHow 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.
- flukus 10y agoIf 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.
- Tehnix 10y agoNot 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 10y agoThat cheatsheet is really well done. Thanks for that.
- __s 10y agoI learnt it by writing a befunge interpreter: https://github.com/serprex/Befunge/blob/master/bef.vim https://github.com/serprex/Befunge/blob/master/bef.vim
- satai 10y agoPlease spend a bit of time with the Readme.md in the repository. It's not clean, what is the stuff for, how it's usefull... Reference to an other project (clone of XY) doesn't help much too.
- shantanugoel 10y agoDoes it work on windows with the neovim windows executable?
- Tehnix 10y agoUnfortunately 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 :)
- ivarv 10y agoThis 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 10y ago>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 :)
- ungzd 10y agoSo postmodern!
- meitham 10y agoShameless plugin https://github.com/meitham/vim-spacemacs https://github.com/meitham/vim-spacemacs where I try to use many spacemacs keys in vim.
- city41 10y agoCan someone give a quick summary of what spacemacs and spacevim are?
- ceocoder 10y agoSpacemacs 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 10y agoDo you see yourself going back to vim?
- ceocoder 10y agoI 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.
- aban 10y agoNot 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
- dvcrn 10y agoAnother 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
- Jeaye 10y agoHaving 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 10y agoI really don't think elisp is particularly better than vimL. Emacs just exposes a lot more extension points than vim does.
- sooheon 10y agoThat'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 10y ago> 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.