使用Vim插件YCM开发iOS

时间:2020-12-18 17:28:26


配置Vim插件YCM (YouCompleteMe) 作iOS开发是一件比较麻烦的事情, 尤其是像我这种对 YCM插件不是很了解的人. Google 一把vim ycm iphone 似乎也没有挺多相关结果, 故 记录之.

在Mac OS X上配置YCM的前提是

  1. 已经安装好MacVim
  2. 已经安装好YCM插件及其所需的软件(如cmake) (可参考 YouCompleteMe by Valloric - Mac OS X super-quick installation )

配置步骤

以下是配置步骤:

  1. 编译YCM (支持semantic completion), 详见 YouCompleteMe by Valloric - Mac OS X super-quick installation
    cd ~/.vim/bundle/YouCompleteMe
    ./install.sh --clang-completer
  2. 在工程的根目录上添加.ycm_extra_conf.py文件, 文件内容如下:

至此, YCM插件配置完成. 虽然YCM对Obj-C的支持不够好(参考 Better semantic completion triggering for Objective-C · Issue #84 · Valloric/YouCompleteMe · GitHub), 但配合UltiSnips使用, 效果还行.

YCM技巧

  1. YCM 需要 .ycm_extra_conf.py支持. 在YCM中有.ycm_extra_conf.py文件, 该文件支持大多数语言, 可在.vimrc 中添加

    let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'
    • 如果默认的.ycm_extra_conf.py没有效果, 可复制一份.py文件放置在工程根目录下, 并修改该.py文件以适用工程.
    • 可在github上搜索.ycm_extra_conf.py, 学习他人如何写.ycm_extra_conf.py
  2. 一般来说, 编译YCM时, 会添加--clang-completer选项以支持semantic completion for c-family languages.

    • --clang-completer 选项会影响性能, 一般无妨.
    • 如果性能影响太大(比如感觉输入文字卡顿), 可以不带任何选项重新编译YCM. 这样编译的YCM与superTab插件类似, 但有superTab没有的优点.
  3. YCM 可配合UltiSnips, syntastic 使用

  4. YCM 完全可以替代且超越以下Vim插件, 关键在于如何配置YCM (YCM有些复杂)

    • clang_complete
    • AutoComplPop
    • Supertab
    • neocomplcache

扩展阅读

  1. YouCompleteMe by Valloric
  2. Better semantic completion triggering for Objective-C · Issue #84 · Valloric/YouCompleteMe · GitHub
  3. vim智能补全插件YouCompleteMe新手完全攻略
  4. 安装vim代码补全工具YouCompleteMe
  5. YouCompleteMeでiPhoneアプリ開発
  6. Adding IOS headers to ycm_conf. · Issue #331 · Valloric/YouCompleteMe · GitHub
  7. How to Make YouCompleteMe Compatible With UltiSnips