emacs-ycmd配置

emacd-ycmd配置

毕竟之前是用vim的人,所以在以前配置过YouCompleteMe,用起来比较舒服.现在转战emacs,所以一直在寻找emacs的补全插件.
我本人试过 auto-company-clang,不过貌似是插件的原因,有一些问题.ycmd-emacs配置成功,但是貌似一些问题在其他博客没有写到,所以我就献献丑.
  • 首先配置ycmd
    首先emacs-ycmd其实是ycmd的一个client.所以要先配置ycmd.不过毕竟配置过YoucompleteMe,所以之前就配置好了ycmd,所以我本人就直接用了以前配置的ycmd.
    ycmd具体配置就在这
    ycmd: a code-completion & comprehension server

我就简述一下:

1)安装依赖

sudo apt-get install build-essential cmake python-dev

2)在github下载ycmd源码

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

3)build

./build.py --clang-completer --omnisharp-completer --gocode-completer

这样会再生成一个ycmd文件夹.注意这个文件夹

  • 写配置文件
(require-package 'ycmd)
(require-package 'company-ycmd)
(require 'ycmd)
;;下面那句要取消注释
;;(add-hook 'c++-mode-hook 'company-mode)
(add-hook 'c++-mode-hook 'ycmd-mode)
;;路径就是你自己的ycmd的路径
(set-variable 'ycmd-server-command '("python" "/home/ycmd/ycmd"))
(set-variable 'ycmd-global-config "/home/.ycm_extra_conf.py")

(require 'company-ycmd)
(company-ycmd-setup)
(provide 'init-ycmd)
  • 问题

然后启动emacs,如果没有的插件,会自动下载.
打开cpp文件,发现不能补全,找了很多博客的文章都没有提到这个问题,都是说可以直接补全.
我在emacs-ycmd的github中翻了一下,貌似找到了有同样问题的人.

照我本人的理解,
company-ycmd是依赖于ycmd-mode和company-mode的,但是打开cpp文件并没有自动的开启以上的两个模式
(如果只按照emacs-ycmd的说明的配置,就仅仅只自动开启ycmd-mode.

只需要自己添加一句配置代码

(add-hook 'c++-mode-hook 'company-mode)

也就把上面配置的那条注释取消,这样就可以自动补全了.

你可能感兴趣的:(插件,emacs,编辑器)