Emacs 自動補全插件 ycmd

 

 

Emacs 自動補全,最好的插件當屬 ycmd。如下記錄個人安裝過程。html

1. 安裝 ycmd serverpython

github 官方地址: https://github.com/Valloric/ycmdc++

- git 克隆 ycmd 到本地 ~/ycmdgit

$ git clone https://github.com/Valloric/ycmd.git ~/ycmdgithub

- 安裝必要的編譯工具和庫json

$ build-essential cmake python-dev工具

- 下載完整的 submodule (比較大哦。。。)post

$ git submodule update --init --recursiveui

- 編譯 (比較慢哦。。。)插件

$ cd ~/ycmd

$ ./build.py --all

編譯完成以後,會在當前目錄下生成一個 ycmd 文件夾,這個文件夾中有一些python腳本,emacs-ycmd就從這個文件夾中啓動ycmd server。

 

2. 安裝 ycmd client,還有必要的工具

- 打開 Emacs,命令 M-x list-packages, 分別安裝 ycmd, company-ycmd, flycheck-ycmd

 

3. 配置,以下內容添加到  ~/.emacs

;;;;================================================= < for ycmd start >

;;;; To use ycmd-mode in all supported modes
(require 'ycmd)
(add-hook 'after-init-hook #'global-ycmd-mode)

;;;; Specify only support c/c++ mode
;;(require 'ycmd)
;;(add-hook 'c++-mode-hook 'company-mode)
;;(add-hook 'c++-mode-hook 'ycmd-mode)

;;;; Specify how to run the server
(set-variable 'ycmd-server-command '("/usr/bin/python" "/home/cobbliu/ycmd/ycmd"))

;;;; Specify a global emacs configuration
(set-variable 'ycmd-global-config "/home/cobbliu/ycmd/examples/.ycm_extra_conf.py")

;;;; Completion framework
(require 'company-ycmd)
(company-ycmd-setup)
(add-hook 'after-init-hook #'global-company-mode)  

;;;; Enable flycheck
(require 'flycheck-ycmd)
(flycheck-ycmd-setup)
(add-hook 'after-init-hook #'global-flycheck-mode)  

;;;; Set always complete immediately
(setq company-idle-delay 0)

 

補全的時候,彈出 tip 窗口,用 Meta + n 或 Meta + p 去 cycle 可選項,選中後,直接按 Enter 確認。

 

對於大型項目來講,爲ycmd server提供每一個cpp文件的編譯列表會使ycmd更快速地補全,這個文件名叫compile_commands.json。生成這個文件的方法見:https://github.com/astroidmail/astroid/issues/14

生成好compile_commands.json以後,將它放到你的項目根目錄下面,而後再在.ycm_extra_conf.py配置中將項目根目錄寫到compilation_database_folder = '/Users/cobbliu/share/'中。

 

參考:http://www.cnblogs.com/gaowengang/p/5745027.html

相關文章
相關標籤/搜索