文章目录

谈谈VSCode

VScode 是微软公司开源的一款非常优秀的编辑器,本人也是非常喜欢。 但是早期养成了使用 spacemacs的习惯,后因为开启速度问题,转向 doom emacs 。但键位还是和 spacemacs 差不多。可是作者的更新速度太快,导致自己的私有配置 经常更不上,最后放弃了。

因此,很多时候本人都是使用的 VSCode,而且插件非常丰富,几乎可以做任何想做的事。 但由于键位习惯问题,本人将其键位映射为 spacemacs 一样的,这里要感谢 :VSpaceCode

虽然这很大程度上解决了我的键位需求。但是在使用过程中总是不舒服,例如 我需要撤销某些改动的时候,按下 u 键后,它却帮我撤销了很多步骤,导致我 不得不恢复,然后手动去删除不必要的内容。

众里寻他千百度,最终终于在强大的github 上找到一份 vim 配置,或许 可以解决以上问题。

聊聊 ThinkVim

虽然前有 SpaceVim 强大的配置,但是感觉偏离 VSCode 有点远。毕竟我还经常需要 使用 VSCode 呢。

coc-nvim

2018年的一匹黑马,地址: https://github.com/neoclide/coc.nvim 这个插件更像是一种胶水,可以很将 VSCode 上的插件应用到 vim 中。并且和 VSCode 一样,插件使用 typescript 语言。本人之前没用过这个插件,没想到它 这么强大 :)。感谢 ThinkVim 让我认识它。

ThinkVim

ThinkVim 以 coc-nvim 插件为中心,提供了一份很强的配置。人生苦短, 本人还是选择这个配置,结合自己的私有配置进行定制。

安装

进入 https://github.com/hardcoreplayers/ThinkVim 根据它的安装步骤就可以了

配置

这个是最重的,因为每个程序员的开发语言不一样,需求也不一样。 作者也没有整合所有的语言配置,这样会显得臃肿。

本人的主要开发语言是 c/cpp。因此,这里只添加了 ccls 补全支持:

打开 coc-nvim 配置文件(~/.config/nvim/coc-settings.json)或者在 vim 中使用 CocConfig 命令打开。它和 VSCode 一样,使用 json 格式的配置。在语言服务一块增加 ccls 配置:

  // add your languageServer into this list
  "languageserver": {
    "ccls": {
      "command": "ccls",
      "filetypes": [
        "c",
        "cpp",
        "objc",
        "objcpp"
      ],
      "rootPatterns": [
        ".ccls",
        "compile_commands.json",
        ".git/",
        ".hg/"
      ],
      "initializationOptions": {
        "cache": {
          "directory": "/tmp/ccls"
        }
      }
    }
  }

需要提前安装 ccls 服务程序。安装方法: https://github.com/MaskRay/ccls/wiki/Build

接着就是 snippets 了,coc 中提供 coc-sinppets 这个扩展,可以解析 VSCodesnippets 文件。只需要在 coc-settings 中指定配置目录即可,并将你在 VSCode 上写的 snippets 文件复制到该目录即可:

  "snippets.textmateSnippetsRoots": [
    "/home/jer/.config/coc/vssnipts"
  ],

私人配置

ThinkVim 和 spacemacs 一样,提供了一个私人配置的目录,因此很容易根据个人喜好进行定制。

目录在 ~/.thinkvim.d ,其中有两个文件,init.vim 用于添加自己的配置,plugins.yaml 用于添加需要的vim插件

而对于 coc 扩展,则可以使用应用商店进行安装,首先在 vim 中运行 :CocInstall coc-marketplance 安装应用商店,之后就可以使用 :CocList marketplance 进行在线安装插件。

配置文件地址: https://github.com/Jerling/.thinkvim.d , 目前只添加了少许插件,后续根据需要停用上游插件,

总结

这份配置将 VSCode 的使用方式迁移到 vim 中,相比于将 vim 键位迁移到 VSCode 中,难度应该更大。多亏了 coc-nvim 这个平台,让 vim 使用 VSCode 的插件成为可能。而且可以直接 fork VSCode 的插件仓库进行适配,让开发 vim 插件 更简单。同时 coc-nvim 还提供了一个应用商店,安装插件和 VSCode 一样方便。

VSCodevim 都是好编辑器,各有所长,重点是插件丰富 :)。