SpaceVim - 模块化 Vim IDE

本贴最后更新于 1572 天前,其中的信息可能已经时移世改

初心

使用 Vim 已经有好一些年头了,最初也经历了到网上搜索各自配置教程,这个过程非常有趣,也有些痛苦,经常因为一些莫名其妙的错误不知所措。随着接触 Vim 时间越来越长,也了解到了各自组织 Vim 配置文件的方式。其中 airline 作者的配置给我印象最深,使用一个全局 List 变量,来定义需要载入的插件组合,这已经有一点模块化的思路了。再后来,受到 spacemacs 这个项目的启发,我新建了 SpaceVim 这一项目,其核心目的在于:

  1. 提供一个稳健的、开箱即用的 Vim 基础配置环境
  2. 对不同语言的支持,封装成一个模块,模块里自然包括一些语言相关的插件和配置,用户不需要去搜索各自插件、配置,只需要载入该模块即可以得到一个完整的语言开发环境。

关于 SpaceVim

614629200bd9d000a9a611e98e1fc70d6ec6ca1e.png

项 目 主 页: https://spacevim.org/cn/

Github 地址 : https://github.com/SpaceVim/SpaceVim

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

最新 release 版本:v1.5.0

启用模块

比如启用 python 语言模块:

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

目前支持的语言:https://github.com/SpaceVim/SpaceVim/wiki/programming-languages

在这个列表里,将列出所有 SpaceVim 已经支持和计划支持的语言,如果你对其中某个语言有兴趣,欢迎进入相关连接讨论,对于没有连接的,可以在 SpaceVim 的 github 仓库新建 issue 讨论。

中文社区

可以在官网看到,SpaceVim 的社区分两个,(中文、英文),而在每个社区里,分如下几个分支:

  1. 提交 bug,或者新特心需求,建议去 Github(英文) 或者 Gitee(中文)
  2. 贡献代码,毫无疑问 Github PR,SpaceVim 有一些镜像仓库,比如 gitee、gitlab,是为了方便用户下载,毕竟 github 在国内还是有些慢的。
  3. 日常讨论(即时消息),gitter 中文同步交流群,官网右下角既有聊天按钮,同步着电报、IRC 等平台
  4. 其他讨论,这些就分布在各个社区,比如知乎、比如掘金,当然也包括黑客派。所以,可以在黑客派下的 SpaceVim 标签下进行经验、技巧分享。

https://hacpai.com/tag/spacevim

相关讨论

这里罗列了一些跟 SpaceVim 相关的讨论:

  1. 如何评价 SpaceVim?
  2. 如何完善 SpaceVim?
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • SpaceVim

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

    3 引用 • 31 回帖 • 99 关注
  • IDE
    21 引用 • 83 回帖 • 1 关注
6 操作
goodbye 在 2020-08-02 13:25:54 更新了该帖
goodbye 在 2020-04-19 13:53:07 更新了该帖
goodbye 在 2019-10-21 22:39:08 更新了该帖
goodbye 在 2019-10-21 22:16:20 更新了该帖 goodbye 在 2019-10-21 20:42:39 更新了该帖 goodbye 在 2019-10-21 20:40:37 置顶了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • goodbye
    作者 MOD

    为了避免重复的帖子,后期关于 SpaceVim 的更新,我就在本帖子里面发和回复了。

    1 回复
  • 88250

    没关系的 😄

  • goodbye
    作者 MOD

    @88250 你好,我想在 spacevim 的社区列表里把黑客派也列出来,但是,似乎黑客派没有项目 channel 这种说法,我想像 reddit 那样,给自己的项目新建一个 channel,不知道后期是否会有这个功能。或者说还是仅仅有 tag 标签这一说法?

    1 回复
  • goodbye
    作者 MOD

    @88250 比如说,添加一个 hacpai.com/p/SpaceVim (project) 或者 类似与 reddit hacpai.com/r/SpaceVim , 用户就用 hacpai/u/wsdjeg

    目前,我看是 hacpai.com/member/wsdjeg

  • 88250

    你好,目前只有标签 /tag/SpaceVim,管理权限也是平铺的,有标签信息更新权限的话可以更新所有标签的信息,有帖子管理权限的话可以更新所有帖子,没有针对版块版主的设计。

    以后可能会增加 /project/Xxx,主要动机是想让 B3log 开源项目逐步脱离 GitHub,比如 README、Issues 等在社区交流更方便快捷,用户解决问题会更加集中高效。当然,这个想法是否适用于其他项目,或者说大家是否觉得黑客派能够担此重任还得另说 🤣

    目前我已经把我这边相关项目的 README 迁移到社区里了,当然这还只是非常初步的阶段,后续会慢慢将项目的 Issues 沟通机制也迁过来,最终的目标是仅在 GitHub 上托管代码,项目的计划、发布、文档、反馈交流等都在黑客派上进行。

    1 回复
  • goodbye 1
    作者 MOD

    这个我觉得有点夸张了,对我来说,当我维护一个项目的时候,最主要,最核心的东西就是 git 版本信息,这个内容肯定是托管在最稳定的企业平台,而非个人或者国内公司平台,比如,github。 对于讨论我分三大块:

    1. PR, 这个是最主要的讨论,涉及到 代码 review,我倾向于丢在 github 讨论,如果出现实在非要中文的,那么也会偏向于丢在 中文 git 平台讨论
    2. issue, 有很多种,如果是 feature requets 和 bug report,我倾向于在 github 讨论。 如果是使用技巧,或者经验交流,我建议在各个社区讨论。比如,原先的知乎用户,他用了 SpaceVim, 有了一些经验,或者技巧想分享,我觉得他没必要注册多个其他社区账号,直接在自己的 知乎社区,SpaceVim 话题下分享即可。这才是开放的、包容的项目社区。
    3. 通知、邮件组,这些东西基本上是,非常关注这个项目的人才会订阅的。我偏向于使用 twitter 和 微博,公众号我会用,但不会推送消息。因为公众号太封闭,不是开放的社区。
    1 回复
  • 88250

    你说的对,后续这个方向上的重点应该是建设项目反馈渠道,让黑客派上的用户可以更方便的交流分享这个项目相关话题,不会限制封闭或者说是圈死项目的社区,这样意义不大也不现实。

    GitHub 作为工具,大家也比较熟悉其协作流程,流程相关的范围最好还是 GitHub 本身解决,这样也更专业和高效。

    感谢感谢,你的建议很有价值 🙏

    1 回复
  • goodbye
    作者 MOD

    所以,我更新了下这个帖子,列出了一些社区,以及这些社区的功能,同时也说明了我对黑客派这一社区的期望,我希望 SpaceVim 这一项目,可以在黑客派社区能够被一些用户所喜欢、使用,然后可以在 spacevim 标签下分享自己的使用经验以及技巧。

  • SpaceVim 怎么解决图标乱码问题 mac 官方终端

    1 回复
  • goodbye
    作者 MOD

    官方终端,我记得是不支持真色的,颜色会很怪异,建议使用 iterm2, 同时安装 nerdfonts,安装好了,在 iterm2 里面设置字体即可。

    127313c03dadf91c7c5476.png

    顺便吐槽以下简书,这张图片我是在简书上找到的,但是邮件另存图片时,却给我保存成 webp 文件,挺 J 的,非得查看原图,才能保存图片。

    1 回复
  • someone27889 1 评论

    image.png

    完成

    PS:大佬,我是极其渴望/希望 可以 看到大佬关于 SpaceVim 的使用方法 的帖子的。因为在学校的时候接触的 Vim 然后 Idea 和 Vscode 都会装 Vim 插件 但是 目前 用到的极少 比如 '/ , `a, ma , n ,a , e, w , shift+a n e i, JHKL, xxx go ,gg ,GG , d , p 就只有这些,还是没有使用到 Vim 的精髓,虽然现在也不太用鼠标。。。

  • 官网啊,比如我要配置 lang#java,好难找这个东西,好多二级页面是需要点链接进去的。。。需要一个 link list

    1 回复
  • goodbye
    作者 MOD

    官网有可用模块列表,此外,谷歌搜索关键字,比如 SpaceVim python,应该在第一页就看到 python 模块的链接

    1 回复
  • 昨天那个问题在更新了代码以后已经没了,现在是 开启 lang#typescript 以后 用 nvim 打开 ng(angular)项目 报错

    image.png

    方便调试的话项目地址在:https://github.com/myheroacademia/myheroacademia-index
    toml:https://github.com/ferried/spacevim.toml

    1 回复
    1 操作
    someone27889 在 2019-10-25 20:58:54 更新了该回帖
  • goodbye
    作者 MOD

    报错的具体内容是什么呢?可以到 gitter 群里交流。 https://gitter.im/SpaceVim/cn

  • 另外,感谢大佬搞这个项目,对于 VIM 爱好者来说,it's very cool!!!!感谢 🙏

    1 回复
  • goodbye
    作者 MOD

    客气了,大家喜欢就好

  • goodbye
    作者 MOD

    更新了下文章,新增两个在知乎上讨论比较多的问题,有兴趣可以参与下哦。

  • someone27889 1 评论

    现在用了一阵子,比较困扰我的问题有几个

    1.不知道按啥能跳转到函数的定义的源码文件

    2.不知道按啥能看到函数的简介 :参数,参数类型,返回值,返回值类型

    3.没有办法关闭当前打开的文件,直接 q!就把编辑器退出了。。。

    4.space ' 打开的 shell 好像不能时时刷新..

    5.右侧的 Tree 在 N 的时候只能创建文件,创建不出文件夹

    1 回复
    还有就是 maven 的 java 项目在 lr 尝试运行的时候找不到 main.class,应该是以前用 idea 用多了,啥都集成好了的锅
    someone27889
  • goodbye 1 评论
    作者 MOD
    1. 跳转到源码应该是快捷键 g d
    2. 参数简介,这个快捷键不是每个语言都有的,正常应该是 SPC l t
    3. 如果当前文件时仅有的一个窗口,文件树不算,那么 q! 肯定会关掉编辑器,如果你是要关闭当前 buffer, 可以使用 SPC b d
    4. SPC ' 打开的终端窗口确实不会实时刷新,这个是 vim/neovim 本身特性引起的
    5. 新建文件夹的快捷键暂时没有呢,你可以新建一个带有文件夹目录的文件比如 test/test.txt,这时候会自动新建 test 文件夹。
    1 回复
    感谢 🙏
    someone27889
  • 最近我更新了 spacevim,然后 ctrl p 会弹出 help 导致无法检索

    图片.png

    2 回复
  • goodbye
    作者 MOD

    这个应该是因为 SpaceVim 中 ctrlp 的 grep 命令设置问题,导致运行出错。可以提一个 issue。

  • goodbye 4 评论
    作者 MOD

    我看了下,ctrlp 有一个变量,可以设置用户命令,这个默认使用的 grep 命令应该出现了问题。

    没关系,我还有另一个文件查找插件可以用
    someone27889 1 赞同
    @ferried 建议使用 leaderf 这个模块,leaderf 的体验和 ctrlp 类似,但是速度要快很多了。
    goodbye
    fzf spc f f
    someone27889
    @ferried Fzf 也是非常不错的插件,查找也很快。
    goodbye
请输入回帖内容 ...