星期六, 9月 20, 2014

Vim 自動 補完 插件 YouCompleteMe 教學 心得 新手入門 C++ C


在講正題之前,先奉上developer的github :

https://github.com/Valloric/YouCompleteMe

由於自己也是新手,如果內容有什麼不正確的地方請不吝指教 謝謝!



 [ 正題開始 ]

這個暑假嘗試了很多vim的plugin
其中一個覺得還不錯的plugin : YouCompleteMe 
他和以往的complete補完插件不太一樣的是 他不是去讀ctags裡面的資料
而是parse子串的內容 所以即使再打字串和comment也可以進行補完的功能
( 有些要利用 vim 的配置檔案 .vimrc 進一步配置 )

接下來就以ubuntu 14.04進行安裝,這裡介紹的是"簡易安裝模式"
再按裝這個plugin之前 我們需要利用的東西:vim 7.3.584 以上, git, Vundle, cmake, python, Vundle


linux - like 系統 安裝插件的方式是利用 : 
          sudo apt-get install [plugin_name]

[ 安裝 git ]
首先,在我們擁有一台 linux 作業系統的電腦時,一開始是沒有安裝 " git " 
並且在安裝 "Vundle" 之前 要先裝 git 
( 用git裝Vundle , Vundle 是 vim plugin 的託管插件 )



在$後面打上 sudo apt-get install git 就會開始安裝囉~
以$開頭代表終端機指令 ( command line )

[ 安裝 Vundle ]
接下來,我們安裝 Vundle : https://github.com/gmarik/Vundle.vim

$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

然後我們輸入vim .vimrc 進行bundle的基本配置

在Vundle作者的github有.vimrc的基本配置,其中有一些Plugin可以不用使用
隨個人決定 

配置好 .vimrc 後 :wq 

[ 安裝 cmake ]
$ sudo apt-get install build-essential cmake

[ 安裝 python ]
$ sudo apt-get install python-dev

[ 安裝 YouCompleteMe ]
$ vim .vimrc 
在 Vundle 配置的欄位下面 加上:Plugin 'Valloric/YouCompleteMe'


















: wq 
$ vim 
然後在 vim 裡面 :PluginInstall 
裝完之後 訊息顯示之後要編譯 YouCompleteMe

[ 編譯 YouCompleteMe ]

假如需要C family的補全 :
cd ~/.vim/bundle/YouCompleteMe
./install.sh --clang-completer

不需要C family補全:
cd ~/.vim/bundle/YouCompleteMe
./install.sh


[ 配置 ]

$vim .ycm_extra_conf.py 

我個人是使用作者的配置模式 : 
https://github.com/Valloric/ycmd/blob/master/cpp/ycm/.ycm_extra_conf.py

接下來 配置 .vimrc 這樣才能將 .ycm_extra_conf.py 讀入
let g:ycm_global_ycm_extra_conf = '~/the path/to/your/.ycm_extra_conf.py'

例如:假如我在home裡面 $vim .ycm_extra_conf.py 
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'


接著,let g:ycm_confirm_extra_conf = 0 
這樣就不用每一次開啓vim的時候都詢問是否要利用 .ycm_extra_conf.py 

其餘配置可以看作者的github !



[ 假如不想用插件了 ]
只要在 .vimrc 裡面刪除 Plugin 'Valloric/YouCompleteMe' 或是註解掉這一行就可以了,但是這是利用 Vundle 管理  Plugin 的方法,實際上要刪除的話則不是這樣。


--------------------------------------------------------------------

以上是我自己安裝這個 Plugin 的方法,或許不是最佳的方式 
如果有更好的配置 還請大大們分享!
謝謝收看

2 則留言:

  1. 感謝分享,相當完整,看完這教學我終於用成功> <
    不過./install.sh --clang-completer我是做./install.py --clang-completer 好像都可以@@

    補充一個在VM上裝這個可能遇到的問題 (我折騰了好久orz
    執行./install.py可能會compile失敗,出現"internal compiler error"
    (https://github.com/Valloric/YouCompleteMe/issues/267)

    這時只要:
    1. 重啟VM,或
    2. 把VM設定的RAM加大

    只要過了這關,再根據版主整理的流程便可設定成功

    回覆刪除

[Paper note] Multiagent Bidirectionally-Coordinated Nets for Learning to Play StarCraft Combat Games

Paper:  https://arxiv.org/abs/1703.10069 這篇論文是由 Alibaba & UCL共同發表的,並投稿到 NIPS 2017。他們發表了一個 Multi-agent framework 讓 agents 利用共同的 framew...