下面由sublime教程欄目給大家介紹sublime安裝ycmdcompletion記錄,希望對需要的朋友有所幫助!
Sublime安裝YcmdCompletion記錄
YcmdCompletion是一基于Clang的語義補全插件,安裝分客戶端和服務端。
1. 安裝客戶端
-
搜索Package Control, 選擇YcmdCompletion即可
2. 安裝服務端
有兩種方式啟動服務端,手動和自動。
2.1 手動方式:
編譯ycmd服務,這個是需要在相應平臺上自己編譯的,他會去下載clang等一些庫。編譯方法原文
安裝編譯工具
sudo apt-get install build-essential cmake python-dev
下載ycmd源碼,我把代碼直接下載到sublime的User目錄下, build之后會自動去下載clang的庫。
cd ~/.config/sublime-text-3/User git clone git@github.com:Valloric/ycmd.git && cd ycmd git submodule update --init --recursive ./build.py --all
大概半個小時,安裝成功,作者更新比較頻繁,現在編譯完只會生成一個庫,ycm_core.so了,之前還有一個ycm_client_support.so,現在被合并了。
接下來,手工啟動服務器(注意當前目錄一直是在ycmd這個目錄下), 服務器啟動需要一個配置文件ycmd/default_settings.json, 每次啟動之后會自動被刪除掉,所以我們先拷貝一份到當前目錄下
cp ycmd/default_settings.json .
然后打開他進行修改兩項,global_ycm_extra_conf指定默認的.ycm_extra_conf.py的位置和hmac_secret設定HMAC的key。
默認的.ycm_extra_conf.py下載,用來配置補全功能的設置,具體參數可以看文檔.ycm_extra_conf.py配置
wget https://raw.githubusercontent.com/Valloric/ycmd/master/cpp/ycm/.ycm_extra_conf.py
生成HMAC key
Command Palette > Ycmd: Create HMAC keys
服務器是用python寫的,所以在ycmd/ycmd下面有一個__main__.py文件,我們可以啟動它。
python ycmd --port 8888 --options_file ycmd/default_settings.json
服務端已經啟動了,接下來配置sublime-text客戶端,打開Ycmd的配置文件 Preferences > Package Settings > YcmdCompletion > Settings – Default, 修改ycmd_port端口。
這個方式的最大的好處就是,服務器可以部署在遠程,或者做成Docker image,只需要指定ip和port就可以任意使用了。
2.2 自動方式
打開Ycmd的配置文件 Preferences > Package Settings > YcmdCompletion > Settings – Default,設置3個參數即可。
/* ===== YCMD AUTO START MODE =====*/ "use_auto_start_localserver": 1, "ycmd_path": "/home/will/.config/sublime-text-3/Packages/User/ycmd/ycmd", "python_binary_path": "/usr/bin/python",
3. 啟動Sublime,進行測試
手下設置補全觸發規則,打開Preferences -> Settings – More -> Syntax Specific – User,插入下面代碼。這樣當輸入, ::, ->就可以觸發自動補全了。我增加了/,可以觸發路徑補全,否則需要輸入匹配的字符才能補全。
{ "auto_complete_selector": "source - (comment, string.quoted)", "auto_complete_triggers": [ {"selector": "source.c++", "characters": "."}, {"selector": "source.c++", "characters": "::"}, {"selector": "source.c++", "characters": "->"}, {"selector": "source.c++", "characters": "/"} ] }
ycmd命令列表,包括重啟服務器,顯示錯誤列表等。
Command Palette > Ycmd: