分享Sublime安裝YcmdCompletion記錄

下面由sublime教程欄目給大家介紹sublime安裝ycmdcompletion記錄,希望對需要的朋友有所幫助!

Sublime安裝YcmdCompletion記錄

YcmdCompletion是一基于Clang的語義補全插件,安裝分客戶端和服務端。

1. 安裝客戶端

  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,現在被合并了。
分享Sublime安裝YcmdCompletion記錄

接下來,手工啟動服務器(注意當前目錄一直是在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安裝YcmdCompletion記錄

服務端已經啟動了,接下來配置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:

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享