最近试用了SpaceVim,虽然官网说out of the box.但是,我觉得还是有一些地方不符合我个人的设置,这里简要的记录一下,如果你也有用着别扭的地方,可以拿这篇博客做个参考。

安装SpaceVim & Neovim

据说,SpaceVim在Neovim上体验更佳。然而,本人只是想和以前的vim隔离开来,毕竟攒了那么久的配置,一时还不舍得。好吧,废话不多说,先安装Neovim。

Neovim

brew是mac上的软件安装神器,通过brew安装neovim也很方便。

// 安装Neovim
brew install neovim
// 更新Neovim
brew upgrade neovim

安装完后,在iterm2输入nvim即可打开Neovim。目前Neovim是v0.3.0版本。

python加持

通常,使用Vim的一些插件都需要Python支持,这里给Neovim添加python支持。

pip install neovim --upgrade
// 这里说明一下,如果需要python3支持,则使用pip3 install neovim --upgrade
// 然后修改配置文件,~/.config/nvim/init.vim中添加
let g:python_host_prog = '/usr/local/bin/python'
// 这里也一样,如果是python3,则let g:python3_host_prog = '/usr/local/bin/python3'

要确认添加了python支持,在打开nvim之后输入:echo has('python3')如果返回1,则表示安装成功。

到这里,简单的Neovim已经安装完成。

2018-08-12 16:45:17 修复jedi-vim补全python相关问题

Mac下既有python2又有python3的,如果neovim安装了python3支持,但系统python环境是python,这个时候就需要强制让jedi使用python。

解决办法:在.SpaceVim.d/init.vim中添加如下let g:jedi#force_py_version=3

SpaceVim

SpaceVim提供了很完善的quickstart文档,安装起来也是自动化脚本一键安装。 这里首先运行安装帮助命令。

➜  ~ curl -sLf https://spacevim.org/install.sh | bash -s -- -h
SpaceVim install script : V 0.9.0-dev

Usage : curl -sLf https://spacevim.org/install.sh | bash -s -- [option] [target]

  This is bootstrap script for SpaceVim.

OPTIONS

 -i, --install            install spacevim for vim or neovim
 -v, --version            Show version information and exit
 -u, --uninstall          Uninstall SpaceVim
 -c, --checkRequirements  checkRequirements for SpaceVim

EXAMPLE

    Install SpaceVim for vim and neovim

        curl -sLf https://spacevim.org/install.sh | bash

    Install SpaceVim for vim only or neovim only

        curl -sLf https://spacevim.org/install.sh | bash -s -- --install vim
        curl -sLf https://spacevim.org/install.sh | bash -s -- --install neovim

    Uninstall SpaceVim

        curl -sLf https://spacevim.org/install.sh | bash -s -- --uninstalled

这里我们可以看到,当前最新的版本是0.9.0dev,SpaceVim提供了两个安装脚本,可以分别为vim和neovim安装。这里运行单独给neovim安装的脚本。

curl -sLf https://spacevim.org/install.sh | bash -s -- --install neovim

安装界面。

脚本执行完之后,打开nvim,会自动安装插件。

这些都是vim常用的基础插件。接下来打开nvim,就看到Spacevim的环境界面。

至此,SpaceVim已经安装完成,下面是一些模块配置,可以按需提取。

模块

Vimfiler

作为SpaceVim默认的文件树插件,vimfiler还是简单实用的。F3按键可以打开和关闭vimfilter,一般情况下我都不会打开,因为屏幕空间实在有限,而且有leaderF这类神器(下面具体介绍)辅助。但是,vimfiler在新建文件、删除文件等上还是挺有帮助的。

默认情况下, vimdiler开启了安全模式,避免误删文件。这里可以在配置文件中关闭。

cd  ~/.SpaceVim/config/plugins
nvim vimfiler.vim
// 添加如下配置
let g:vimfiler_safe_mode_by_default = 0

这样一来关闭了安全模式,可以随意增删改查文件了。

  • r – 重命名光标位置下的文件或文件夹名称

  • N – 新建文件

  • K – 新建文件夹

  • dd – 删除光标位置下的文件或文件夹

  • cc – 复制文件或文件夹,会要求输入目标位置

  • mm – 移动文件或文件夹,要求输入目标位置

具体其他操作可以参考:Vimfiler

字体和配色

初次打开SpaceVim会发现,状态栏和文件标识都是乱码和问号,这是字体的问题,SpaceVim需要nerd字体才能达到完美显示。

这里推荐一下mritd改的manaco nerd字体,如果你不喜欢的话,可以去nerd font网站下载其他的字体。Mac下载字体之后,点击直接安装。然后在iterm中修改字体即可。

006tKfTcgy1ftqto2wftwj31kw0tqn2y
006tKfTcgy1ftqto2wftwj31kw0tqn2y

配色方面,SpaceVim默认Gruvbox很不错,但是,本人还是很倾向于solarized,这里采用neoSolarized作为默认配色。需要修改init.toml文件,导入相关配色。

// 修改配置文件, nvim ~/.SpaceVim.d/init.toml
colorscheme = "NeoSolarized""
    background = "dark"
 
[[custom_plugins]]
    name = "iCyMind/NeoSolarized"
    merged = 0

关闭后重新打开nvim,SpaceVim会自动安装插件。待安装完成后即可看到最新的主题配色。

image-20180729165202267
image-20180729165202267

Go语言

[[layers]]
    name = "lang#go"

绑定的按键如下:

Key Binding Description
SPC l a go alternate
SPC l b go build
SPC l c go coverage
SPC l d go doc
SPC l D go doc vertical
SPC l e go rename
SPC l g go definition
SPC l G go generate
SPC l h go info
SPC l i go implements
SPC l I implement stubs
SPC l k add tags
SPC l K remove tags
SPC l l list declarations in file
SPC l m format improts
SPC l M add import
SPC l r go referrers
SPC l s fill struct
SPC l t go test
SPC l v freevars
SPC l x go run

C语言模块请查看:SpaceVim C

python语言模块请查看:SpaceVim Python

其他的请参考:SpaceVim 模块列表

git和版本控制

[[layers]]
    name = "git"

[[layers]]
    name = "VersionControl"

具体功能可以查看verison controlgit,这里不再赘述了。安装完之后可以在状态栏和vimfiler上看到git版本信息。

image-20180729165901868
image-20180729165901868

leaderF

[[layers]]
  name = "leaderf"

具体可以查看leaderF,这里列举一下简单的用途

<leader> f   // 如果没有修改vim的leader键的话,默认是\

就可以快速查询文件。

image-20180729170214824
image-20180729170214824

Tags

Tags对阅读C代码有极高的作用,tags依赖系统的ctags,这里可以按照如下方式安装:

brew install global --with-pygments --with-ctags

然后在SpaceVim配置文件中添加:

[[layers]]
  name = "tags"

重启nvim后等到自动安装完插件即可。

默认绑定F2按键,在左侧打开ctag。这样就可以看到tags相关内容了。

tags主要显示变量,类和函数等信息,对于阅读代码很有帮助。

image-20180729171839589
image-20180729171839589

UI位置

SHELL默认在底部,vimfiler默认在右侧,tags在左侧。 右侧经常有弹窗消息,挡住文件树,而且按照IDE惯例,也应该放在左侧。

这里重新修改一下布局。

shell底部

[[layers]]
name = 'shell'
default_position = 'bottom'
default_height = 30

修改default_position参数为bottom,这样一来,shell默认打开后在底部。

vimfiler右侧

修改此文件:~/.SpaceVim/config/plugins/vimfiler.vim

let g:vimfiler_direction = get(g:, 'vimfiler_direction', 'topleft')

tags右侧

修改此文件:~/.SpaceVim/config/plugins/tagbar.vim

" let g:tagbar_left = get(g:, 'tagbar_left', 1)
let g:tagbar_right = get(g:, 'tagbar_right', 1) // 将上句修改为此句

总结

总体来说,SpaceVim在功能方面达到了开箱即用的效果,适合那些想用vim但不想折腾vim配置的伪vimer,比如我。已经放弃了sublimetext,vscode,全体投奔vim的怀抱,贴一张最后成品图。之后遇到更好地插件和配置,我会继续更新此博客,欢迎关注。

image-20180729172518732
image-20180729172518732