闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

Vim YouCompleteMe 使用整理

2018-05-03 约 1 分钟读完 搬砖秘籍

YouCompleteMe 是我使用 Vim 的必备插件,同时也是最难装的插件,没有之一。本文记录笔者在使用这个插件的一些心得,嗯,这个会持续更新的。

安装

在 Manjaro 上安装没有遇到过什么问题,基本按照文档一路来就好。

在 macOS 上因为要用到 python,并且 macOS 系统自带的 python 并没有安装 pip,所以要麻烦一些,解决方案看这里:macOS切换Python2和Python3的探索

ultisnips 冲突

Vim 的 ultisnips 插件也使用的是 tab 触发,这里会有冲突,解决方法,在 .vimrc 中加入下面的代码:

let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']

把 ycm 的前一项和后一项绑定到小键盘上。

巧用 .tern-project 文件

最新版本的 YCM 已经兼容了 Tern,在我们开发 JavaScript 相关项目时,可以在根目录配置这个文件来增强这个插件的能力。

示例(React):

{
  "ecmaVersion": 6,
  "libs": [
    "browser"
  ],
  "loadEagerly":[
    "node_modules/react-dom/dist/react-dom.js",
    "node_modules/react/dist/react.js",
    "node_modules/react-dom/dist/react-dom.js",
    "node_modules/react-dom/dist/react-dom-server.js"
  ],
  "dontLoad": [],
  "plugins": {
    "es_modules": {},
    "node": {}
  }
}

关于这个文件的详细写法可以参考这里:tststs/atom-ternjs