emacs python自动补全_Emacs 自动补全插件 ycmd

博客介绍了Emacs使用ycmd实现自动补全的安装与配置过程。先安装ycmd server,包括克隆代码、安装编译工具、更新子模块和编译;再安装ycmd client及必要工具;最后进行配置,添加相关内容到~/.emacs。还提到大型项目可提供编译列表提升补全速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Emacs 自动补全,最好的插件当属 ycmd。以下记录我的安装过程。

1. 安装 ycmd server

github 官方地址: https://github.com/Valloric/ycmd

- git 克隆 ycmd 到本地 ~/ycmd

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

- 安装必要的编译工具和库

$ build-essential cmake python-dev

- 下载完整的 submodule (比较大哦。。。)

$ git submodule update --init --recursive

- 编译 (比较慢哦。。。)

$ 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值