配置 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进阶(十)java tomcat中context配置

    Tomcat中Context的配置 问题: java tomcat中<context> docBase属性是什么意思? 元素的属性: path:指定访问该Web应用的URL入口.  doc ...

  2. mysql进阶(九)多表查询

    MySQL多表查询 一 使用SELECT子句进行多表查询 SELECT 字段名 FROM 表1,表2 - WHERE 表1.字段 = 表2.字段 AND 其它查询条件 SELECT a.id,a.na ...

  3. 纯命令提交代码到git仓库(教你怎么装逼)

    如果不喜欢用命令的请点链接:http://blog.csdn.net/xiangzhihong8/article/details/50715427 我这里用纯命令,主要是因为这两天不知道什么原因,ba ...

  4. Java深拷贝浅拷贝

    首先,Java中常用的拷贝操作有三个,operator = .拷贝构造函数 和 clone()方法.由于Java不支持运算符重载,我们无法在自己的自定义类型中定义operator=.拷贝构造函数大家应 ...

  5. 10个精选的颜色选择器Javascript脚本及其jQuery插件

     Color picker即颜色选择器使我们在web开发中可能经常用到的组件,今天我们特意精选了10个超酷的颜色选择器实现,其中包括了javascript脚本 实现及其传说中的jQuery插件实现 ...

  6. 在 Linux 下用 mkdir 命令来创建目录和子目录

    mkdir 是什么呢 Mkdir 是一个用来在 Linux 系统下创建目录的命令.此命令属于内建命令. 运行 mkdir 命令 你可以在你的控制台直接键入 mkdir 来使用它. $ mkdir 默认 ...

  7. 苹果新的编程语言 Swift 语言进阶(十四)--扩展

    扩展是为一个已经存在的类.结构.枚举类型添加新功能的一种方式,包括为不能存取源代码的那些已经存在的类型添加功能. 扩展类似于Objective-C语言中的类别,与类别不同的是Swift语言的扩展没有名 ...

  8. iOS视频播放Demo VideoPlayerDemo

    VideoPlayerDemo https://github.com/CaliosD/VideoPlayerDemo 一个视频播放的例子,使用了pod.

  9. Android为什么使用Binder-android学习之旅(101)

    基础知识 Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中.一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是非共享的,内核空间是共享的,如下图: ...

  10. Spring 学习笔记 ----依赖注入

    依赖注入 有三种方式,本文只学习下属性注入. 属性注入       属性注入即通过 setXxx方法()注入Bean的属性值或依赖对象,由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入方式是 ...