配置 SpaceVim 主要包括以下几个内容:

  • 设置 SpaceVim 选项
  • 启动/禁用模块
  • 添加自定义插件
  • 添加自定义按键映射以及插件配置

设置SpaceVim选项

原先,在 init.vim 文件内,我们可以通过 let g:spacevim_* 这样的语句来设置SpaceVim选项。在新版的 SpaceVim 中,

我们采用了 toml 作为默认配置文件,如果不熟悉 toml 语法的,可以先阅读一下 toml 的基本语法,当然不读也没关系,

toml 已经是最简单的配置文件格式了。

所有的 SpaceVim 选项配置在一个字典里,key 为原先的选项名去除 g:spacevim_ 前缀:

g:spacevim_enable_guicolors -> enable_guicolors

这一选项的值可为 true 或者 false,于是,写入配置即为:

[options]
enable_guicolors = false

一些其他选项,有的值是数字,有的是字符串,字符串的格式和 vim script 类似,可以用单引号,也可以用双引号,比如:

[options]
enable_guicolors = false
snippet_engine = "neosnippet"
statusline_separator = 'arrow'
sidebar_width = 30

启用/禁用 模块

SpaceVim 内置了很多模块,每一个模块由一些插件和相关配置组成,用于提供一些特定的功能,比如提供模糊搜索的模块,

提供版本控制的模块,以及提供语言开发支持的语言模块。

启用或者禁用模块,需要遵循一定的语法结构,并且配到 layers 列表内,比如我现在需要启用 shell 模块,设置模块选项

default_positiondefault_height, 这两个选项分别控制这 shell 窗口打开位置和高度:

[[layers]]
name = "shell"
default_position = "top"
default_height = 30

如果要禁用一个模块,需要增添一个选项 enable, 并赋值 false,默认这个是 true。比如,我需要禁用 shell 模块,

可以这么写, 禁用模块时,除了 enable 这选项,其他选项可写可不写,因为已经不会生效。当然如果为了快速启用/禁用模块,

可以保持其他选项不变。

[[layers]]
name = "shell"
enable = false

添加自定义插件

自定义插件配置语法和模块有点类似,将需要配置的插件,配置进 custom_plugins 列表。比如,我需要添加 2 个插件,

可以参考以下语法:

[[custom_plugins]]
name = "lilydjwg/colorizer"
merged = 0 [[custom_plugins]]
name = "tpope/vim-scriptease"
merged = 0
on_cmd = "Scriptnames"

大家可以看到,在添加自定义插件时,我们支持很多选项,这归功于dein, dein 支持如下常用

选项:

Option Type Description
name string A name for the plugin. If it is omitted, the tail of the repository name will be used
rev string The revision number or branch/tag name for the repo
build string Command to run after the plugin is installed
on_ft string or list Load a plugin for the current filetype
on_cmd string or list Load the plugin for these commands
rtp string You can use it when the repository has the Vim plugin in a subdirectory
if string or number If it is String, dein will eval it.
merged number If set to 0, dein doesn't merge the plugin directory.

自定义快捷键及插件配置

最后,我们来说下,如果添加自定义配置,和自定义快捷键。在使用 toml 配置 SpaceVim 时,我们提供了两个选项,位于 [options] 下:

bootstrap_beforebootstrap_after, 这两个选项接受一个字符串最为值,该字符串值得是一个 vim 方法名。顾名思义,你可以通过这

两个选项定义两个 vim 方法,分别在载入配置时,和 vim 启动后被调用,在方法内,你可以加入一些 vim 脚本,比如快捷键,

比如插件的选项。

比如,在配置文件内加入如下内容:

[options]
enable_guicolors = false
snippet_engine = "neosnippet"
statusline_separator = 'arrow'
sidebar_width = 30
bootstrap_before = "myspacevim#before"

新建 ~/.SpaceVim.d/autoload/myspacevim.vim, 加入内容:

func! myspacevim#before() abort
let g:neomake_enabled_c_makers = ['clang']
nnoremap jk <esc>
endf

如何使用 toml 配置 SpaceVim的更多相关文章

  1. 如何配置 SpaceVim

    本文将系统地介绍如何配置 SpaceVim,配置 SpaceVim 主要包括以下几个内容: 设置 SpaceVim 选项 启动/禁用模块 添加自定义插件 添加自定义按键映射以及插件配置 设置Space ...

  2. Golang学习--TOML配置处理

    上一篇文章中我们学会了使用包管理工具,这样我们就可以很方便的使用包管理工具来管理我们依赖的包. 配置工具的选择 但我们又遇到了一个问题,一个项目通常是有很多配置的,比如PHP的php.ini文件.Ng ...

  3. 利用etcd及confd实现配置自动管理

    ETCD etcd 架设etcd集群 静态启动etcd集群需要每个成员在集群中知道另一个成员.在许多情况下,集群成员的IP可能提前未知.在这种情况下,可以使用etcd集群的自动发现服务.一旦etcd集 ...

  4. TOML配置文件

    Toml是一种易读.mini语言,由github前CEO,Tom创建.Tom's Obvious, Minimal Language. TOML致力于配置文件的小型化和易读性.wiki:https:/ ...

  5. Golang学习--平滑重启

    在上一篇博客介绍TOML配置的时候,讲到了通过信号通知重载配置.我们在这一篇中介绍下如何的平滑重启server. 与重载配置相同的是我们也需要通过信号来通知server重启,但关键在于平滑重启,如果只 ...

  6. traefik 结合 docker-compose 的快速安装及使用

    traefik 介绍 traefik 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理.负载均衡工具. 它支持多种后台 (Docker, Swarm, Kubernetes, Maratho ...

  7. linux中使用docker-compose部署软件配置分享

    本篇将分享一些 docker-compose 的配置,可参考其总结自己的一套基于docker的开发/生产环境配置. 安装docker及docker-compose install docker cur ...

  8. Redis Codis 部署安装

    背景 关于Redis的高可用除了只身的Sentinel和Cluster之外,还有一个用的比较多的是Codis,由于公司的Redis大部分都使用Codis,本文就针对Codis进行相关的安装部署进行说明 ...

  9. golang 学习过程中踩的坑

    目录 [他人总结] 首字母大写才是对外可见的 包的初始化函数顺序问题 DB 连接泄漏问题 err 常用写法 goroutine 内的变量 指针可能是 nil 多层 map 未初始化 [他人总结] ht ...

随机推荐

  1. Java进阶(二十)解疑答惑之何时字符串才算真正为空?

    解疑答惑之何时字符串才算真正为空? 在一次编码过程中,有一个现象一直困扰着自己,经过后台的不断调试,才发现原来有时候字符串的空非空.测试代码如下: // medname可为药品名称或药品ID Stri ...

  2. java工具类(六)根据经纬度计算距离

    Java实现根据经纬度计算距离 在项目开发过程中,需要根据两地经纬度坐标计算两地间距离,所用的工具类如下: Demo1: public static double getDistatce(double ...

  3. Gradle 1.12用户指南翻译——第二十八章. Jetty 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  4. 蘑菇街Android组件与插件化

    插件化的基石 -- apk动态加载 随着我街业务的蓬勃发展,产品和运营随时上新功能新活动的需求越来越强烈,经常可以听到"有个功能我想周x上,行不行".行么?当然是不行啦,上新功能得 ...

  5. OpenCV实现仿射变换

    什么是仿射变换?¶ 一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移). 综上所述, 我们能够用仿射变换来表示: 旋转 (线性变换) 平移 (向量加) 缩放操作 ...

  6. The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files

    The type java.lang.Object cannot be resolved.It is indirectly referenced from required .class files ...

  7. LeetCode之“动态规划”:Decode Ways

    题目链接 题目要求: A message containing letters from A-Z is being encoded to numbers using the following map ...

  8. CentOS 7下编译安装Boost_1_57_0

    之前对库的理解太肤浅(现在也仍很肤浅),导致走了挺多的弯路,现记录以备后查. 现在可以从Boost官网下载到最新的Boost源代码boost_1_57_0.tar.gz. 现将步骤记录如下: 1. 解 ...

  9. Mina源码阅读笔记(三)-Mina的连接IoAccpetor

    其实在mina的源码中,IoService可以总结成五部分service责任.Processor线程处理.handler处理器.接收器和连接器,分别对应着IoService.IoProcessor.I ...

  10. React Native入门 开发第一个React Native应用

    1. 首先创建一个目录(比如ReactNativeDir),用于存放各个ReactNative工程的代码 2.使用React Native命令工具来创建(初始化)一个ReactNative项目(tes ...