I always want imporve my skills on VIM. Thus recently I spent two days on setting up a VIM IDE for C/C++ proprogramming. Below are some useful steps for YCM.python
Mac Info
OS X Yosemitegit
Version 10.10.5github
VIM
Mac OS Unix Version (MacVIM)vim
Vi Improved 8.0app
And I also have installed HomeBrew for Mac and Vundle for Vim plugins management.ide
First make sure you have HomeBrew in your computer, because it is a great tool to install some missing packages and tools in Mac OS.ui
You always want to install the lates MacVim, which is required by Youcompleteme. In your terminal, run:this
brew update brew install vim && brew instal macvim brew link macvim
You should now be able to launch MacVIM from the terminal using mvim
.idea
Referencecode
The following steps are according to the instruction in Github.
Note: I saw in the installation section that you can install it in a ideal way or following the full guidance. I tried the ideal way, but reality turned out never to be ideal. SO please follow the full guidance. It will help you understand what is going on inside YCM.
To use Vundle for installation, put the following line in your .vimrc
configuration file:
Plugin 'valloric/youcompleteme'
And then run PluginInstall
in your VIM commandline. It should work just fine.
CMake is a helpful tool to compile the source file, and is also suggested in the full guidance. A easy way to install it is using HomeBrew. Run these:
brew install cmake
Just for synchronization, if you type in the terminal cmake
, you should get the usage info for the function.
This is an important step to make sure that your YCM will be powered to do semantic completion for the specific languages.
Here comes HomeBrew again. Run brew install llvm
will download and extract the libclang for you. Wait a minute when the process is done. Take a look at the return information, which tells you the location of the extrated files. Take note and you'll need it afterwards ! For me, my llvm
folder locates at /usr/local/opt/llvm
.
Excitingly, we are now good to compile the ycm_core
library. Please refer to more information in instruction in Github.
First, confirm that where your youcompleteme
folder locates, ~/.vim/bundle/youcompleteme
for me.
Then, prepare for building files. In the terminal:
cd ~ mkdir ycm_build cd ycm_build
Since I DO care about semantic support for C-family (Hey, can anyone tell me what languages the 'C-family' actually includes ???), make sure that you have your extracted files located at the right place. In the terminal:
cp -R /usr/local/opt/llvm ~/ycm_temp mv ~/ycm_temp/llvm ~/ycm_temp/llvm_root_dir
Now you should have the directorie at the right location. To assure you, the directory, llvm_root_dir, has something like bin
, lib
, and include
etc, and now you have two filders named ycm_build
and ycm_temp
under ~/
.
Inside the ycm_build
directory, run in the terminal:
cd ~/ycm_build cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp sudo cmake --build . --target ycm_core --config Release
"Unix Makefiles" is a generator tag. If you want to know more, please refer to instruction in Github.
Good luck to you if you don't have any errors. Now your YCM is supposed to work. But before we finish, we need to configure an extra file.
You can consider using YCM-Generator to generate the need file, accoding to the doc.
If you don't want to bother with it, simply copy this file, put it at ~/.vim/.ycm_extra_conf.py
', and lastly put let g:ycm_global_ycm_extra_conf = "~/.vim/.ycm_extra_conf.py"
in your .vimrc
.
YCM will recersively find the closest extra conf file, starting from the current location.
Congratulations, your YCM should work just fine.
This is probably you have linked YCM and MacVIM to different python. Try this:
cd /usr/local/Frameworks/Python.framework/Versions/2.7 cp Python Python_bak cd /System/Library/Framework/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS sudo cp Python Python_bak ln -sf Python /usr/local/Framework/Python.framework/Versions/2.7/Python
The actual efficiency needs to be tested, since I just finished the configuration myself.
How to generate personalized extra conf file.
9/25/2016
Weiming