配置Vim插件YCM (YouCompleteMe) 作iOS开发是一件比较麻烦的事情, 尤其是像我这种对 YCM插件不是很了解的人. Google 一把vim ycm iphone
似乎也没有挺多相关结果, 故 记录之.
在Mac OS X上配置YCM的前提是
- 已经安装好MacVim
- 已经安装好YCM插件及其所需的软件(如cmake) (可参考 YouCompleteMe by Valloric - Mac OS X super-quick installation )
配置步骤
以下是配置步骤:
- 编译YCM (支持semantic completion), 详见 YouCompleteMe by Valloric - Mac OS X super-quick installation
cd ~/.vim/bundle/YouCompleteMe
./install.sh --clang-completer - 在工程的根目录上添加
.ycm_extra_conf.py
文件, 文件内容如下:-
.py
文件内容参考 http://pastebin.com/KwUN4Fib , 可能需要*
-
至此, YCM插件配置完成. 虽然YCM对Obj-C的支持不够好(参考 Better semantic completion triggering for Objective-C · Issue #84 · Valloric/YouCompleteMe · GitHub), 但配合UltiSnips使用, 效果还行.
YCM技巧
-
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
- 如果默认的
-
一般来说, 编译YCM时, 会添加
--clang-completer
选项以支持semantic completion for c-family languages.- 但
--clang-completer
选项会影响性能, 一般无妨. - 如果性能影响太大(比如感觉输入文字卡顿), 可以不带任何选项重新编译YCM. 这样编译的YCM与superTab插件类似, 但有superTab没有的优点.
- 但
-
YCM 可配合UltiSnips, syntastic 使用
- 参考 How to Make YouCompleteMe Compatible With UltiSnips
- 参考 YouCompleteMe by Valloric - Syntastic integration
-
YCM 完全可以替代且超越以下Vim插件, 关键在于如何配置YCM (YCM有些复杂)
- clang_complete
- AutoComplPop
- Supertab
- neocomplcache
扩展阅读
- YouCompleteMe by Valloric
- Better semantic completion triggering for Objective-C · Issue #84 · Valloric/YouCompleteMe · GitHub
- vim智能补全插件YouCompleteMe新手完全攻略
- 安装vim代码补全工具YouCompleteMe
-
YouCompleteMeでiPhoneアプリ開発
- 日文, 可使用有道网页翻译2.0 插件翻译
- Adding IOS headers to ycm_conf. · Issue #331 · Valloric/YouCompleteMe · GitHub
- How to Make YouCompleteMe Compatible With UltiSnips