ycmd for emacs 代码自动补全
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)
===================
天行健,君子以自强不息
地势坤,君子以厚德载物
===================