下面由sublime教程欄目給大家介紹Sublime安裝YcmdCompletion記錄,希望對需要的朋友有所幫助!
Sublime安裝YcmdCompletion記錄
YcmdCompletion是一基于Clang的語義補(bǔ)全插件,安裝分客戶端和服務(wù)端。
1. 安裝客戶端
-
搜索Package Control, 選擇YcmdCompletion即可
2. 安裝服務(wù)端
有兩種方式啟動服務(wù)端,手動和自動。
2.1 手動方式:
編譯ycmd服務(wù),這個(gè)是需要在相應(yīng)平臺上自己編譯的,他會去下載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
大概半個(gè)小時(shí),安裝成功,作者更新比較頻繁,現(xiàn)在編譯完只會生成一個(gè)庫,ycm_core.so了,之前還有一個(gè)ycm_client_support.so
,現(xiàn)在被合并了。
接下來,手工啟動服務(wù)器(注意當(dāng)前目錄一直是在ycmd這個(gè)目錄下), 服務(wù)器啟動需要一個(gè)配置文件ycmd/default_settings.json
, 每次啟動之后會自動被刪除掉,所以我們先拷貝一份到當(dāng)前目錄下
cp ycmd/default_settings.json .
然后打開他進(jìn)行修改兩項(xiàng),global_ycm_extra_conf
指定默認(rèn)的.ycm_extra_conf.py的位置和hmac_secret
設(shè)定HMAC的key。
默認(rèn)的.ycm_extra_conf.py
下載,用來配置補(bǔ)全功能的設(shè)置,具體參數(shù)可以看文檔.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
服務(wù)器是用python寫的,所以在ycmd/ycmd下面有一個(gè)__main__.py文件,我們可以啟動它。
python ycmd --port 8888 --options_file ycmd/default_settings.json
服務(wù)端已經(jīng)啟動了,接下來配置sublime-text客戶端,打開Ycmd的配置文件 Preferences > Package Settings > YcmdCompletion > Settings - Default
, 修改ycmd_port
端口。
這個(gè)方式的最大的好處就是,服務(wù)器可以部署在遠(yuǎn)程,或者做成Docker image
,只需要指定ip和port就可以任意使用了。
2.2 自動方式
打開Ycmd的配置文件 Preferences > Package Settings > YcmdCompletion > Settings - Default
,設(shè)置3個(gè)參數(shù)即可。
/* ===== 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,進(jìn)行測試
手下設(shè)置補(bǔ)全觸發(fā)規(guī)則,打開Preferences -> Settings - More -> Syntax Specific - User
,插入下面代碼。這樣當(dāng)輸入, ::, ->
就可以觸發(fā)自動補(bǔ)全了。我增加了/
,可以觸發(fā)路徑補(bǔ)全,否則需要輸入匹配的字符才能補(bǔ)全。
{ "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命令列表,包括重啟服務(wù)器,顯示錯(cuò)誤列表等。
Command Palette > Ycmd: