首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpaceVim 0.7.0:像 IDE 一样使用 Vim,将语言拓展模块化

#扫描上方二维码进入报名#

授权协议:MIT

操作系统:跨平台

软件作者:SpaceVim

简介

SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以 及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全, 语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱 即用的 Vim-IDE。

使用过程中遇到问题或者有什么功能需求可以在 Github 或者码云提交 issue,这将更容易被关注和修复。

以下是近几周的开发汇总:

安装

Linux 或 Mac:

想要获取更多的自定义的安装方式,请参考:

特性

快捷键导航,所有快捷键都有导航助记系统,而不需要用户直接记忆,使用几次辅助系统后自然就记住了;

快捷键描述系统,可以快速描述一个快捷键的功能以及快速跳转至快捷键定义的位置;

内置实时代码搜索工具,flygrep,这个内置插件支持常见的集中搜索引擎,ag、rg、pt、ack 和 grep,只需要安装一个自己喜欢的即可。

内置插件管理器界面,插件管理采用的是 dein,插件下载与更新则是采用内置插件管理器,使用了 neovim 以及 vim8 的异步机制,多线程下载,速度更加快。

软件更新动态

三个月前,作者发布了 v0.6.0 这个版本,随着 v0.7.0 的发布,让我们看看到底发生了哪些变化?

兼容性改变:

加入 clever-f 这个插件,并且默认启用,恢复了 f、F 等按键功能。原先的 unite 和 denite 的前缀键已删除。#1460

默认禁用所有语言模块,开发者可根据自己实际开发的语言开启相应模块,甚至可以设定项目专属配置,即在编辑 java 项目时自动载入 java 模块,在编辑 python 项目时自动载入 python 模块,我相信每个程序员会用到的应该不止一种编程语言。

大幅度降低默认插件数量,原先版本200+插件,目前版本默认只有51,后续可能还会减少。

引入以下五种模块,用户可以根据自己喜好以及环境选择其中一个,这五个模块我做个适当的优化,在快捷键上基本达到了一致,详细可以阅读下这个issue

fzf 模块#1504

ctrlp 模块#1503

leaderf 模块#1498,#1476

denite 模块#1491

unite 模块#1487

默认禁用git,VersionControl模块,如果需要的话,自行在用户配置中载入。

移除大部分以 Leader 为前缀的快捷键,个人认为 Leader 这个按键应该是给用户自己去定义的,不建议占用太多,SpaceVim 中自定义了一个前缀键 SPC(空格键),实现方式可以阅读我在 reddit 发的一个教程:How to define custom leader in vim?

改进 tools 这个模块,并且默认禁用,该模块主要是提供了一些 vim 命令#1507。

新特性

Iedit 模式#1258

SpaceVim 内置了一种特殊的模式,Iedit 模式,这种模式提供了多光标支持,不同于已有插件的实现,该模式支持两种状态 :iedit-Normal 和 iedit-Insert。默认情况下 多光标输入时,iedit-normal 模式状态栏时是红色,而 iedit-insert 模式时是绿色。

高亮光标函数#1394

SpaceVim 支持高亮当前光标函数,并且启动一个特殊模式,在该模式下可以快捷地切换高亮区域(方法内、屏幕内、整个文件内),并且可以快速在高亮函数间跳转、切换高亮状态(高亮、取消高亮),并且可以根据已选择的位置计入 iedit 模式。

实现内置工程管理,自动改变工程目录,并可以快速在多个工程之间切换,快速关闭整个工程。#1245

自动根据 package.json 文件判定 javascript 项目工程目录#1437

实现了窗口管理快捷键导航,默认是 normal 模式下的 s 按键,visual 模式的 s 键没有修改,可以正常使用#1214

使用 ci 自动分离部分内置插件,如flygrep,方便非 SpaceVim 用户使用#1358

新的模块:

除了前面提到的五个模糊查找的模块,最新版中还加入了以下模块:

tools#dash 模块#1366,#1365

lang#csharp 模块#1433

cscope 模块#1220

dart 模块#1207

重写了内置插件管理器#1446

关于版本控制单独做了两个模块,git 模块针对一些 git 专有功能,VersionControl 模块主要实现了一些版本控制软件兼容的功能,此外还有状态栏拓展#1470

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180324B090GS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券