YCMD FOR EMACS
Table of Contents
1 安装
1.1 下载
去ycmd 的github 地址 clone 或者下载。 一般使用git clone 会方便一些。如下:
git clone https://github.com/Valloric/ycmd.git
Cloning into 'ycmd'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 24196 (delta 1), reused 2 (delta 1), pack-reused 24185
Receiving objects: 100% (24196/24196), 18.39 MiB | 52.00 KiB/s, done.
Resolving deltas: 100% (15367/15367), done.
1.2 安装相关依赖
最基本的操作系统依赖包
build-essential cmake python3-dev
其他语言相关包 如:
语言 包 GO golang-go JavaScript | TypeScript npm C# mono-devel/mono Rust Cargo and rustc with rustup Java openjdk-8-jre
1.3 更新submodules
所谓的submodules,实际上是更新ycmd/third_party 中的各种语言的文档。
cd ycmd
git submodule update --init --recursive
过程有点儿漫长。先小睡一会儿。
1.4 安装
# 查看可用选项
python3 build.py --help
# 将已支持的语言全部安装。
python3 build.py --all
2 配置
配置内容如下:
;;;;;;;;;;;;;;;;;;;;;;;company;;;;;;;;;;;;;;;;;;
(add-hook 'after-init-hook #'global-company-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;flycheck;;;;;;;;;;;;;;;;
(add-hook 'after-init-hook #'global-flycheck-mode)
;;;;;;;;;;;;;;;;;;;emacs-ycmd;;;;;;;;;;;;;;;;;;;
(require 'ycmd)
(add-hook 'after-init-hook #'global-ycmd-mode)
(ycmd-force-semantic-completion t)
(ycmd-global-config nil)
(ycmd-server-command (quote ("python" "/home/chris/Code/ycmd/ycmd")))
(set-variable 'ycmd-global-config "/home/chris/Code/ycmd/cpp/ycm/.ycm_extra_conf.py")
(set-variable 'ycmd-extra-conf-whitelist '("/home/chris/Code/daily_report_system/v1.0/*"))
(require 'company-ycmd)
(company-ycmd-setup)
(require 'flycheck-ycmd)
(flycheck-ycmd-setup)