Flycheck如何设置?

使用flycheck layer后它的各种checker是需要自己设置才能起作用吗? 我的flycheck似乎并没有正确生效,请问该如何设置?

  • 大家都安装了针对不同语言都安装了哪些checker?通过何种方式安装?

  • 如下图,为什么c+±mode下不给我报错呢?。。。。 又是哪儿出了毛病?

  • 底部状态栏上我的ycmd后面怎么跟了个感叹号, 安装不对头?

[问题已解决]

Python版本为问题,将系统默认的Python版本改为3即可解决。因为ycmd的有些内容Python2无法兼容。

$ python --version
Python 3.5.1 :: Anaconda 4.1.0 (x86_64)

flycheck 同时只会有一个 checker 生效,一般来说排名在上面的 checker 是大家推荐的,比如 js 里面的 eslint 就排在 jshint 和 jslinter 前面。

C+±mode 的问题可能是你的 ycmd server 没有配置成功。

那关于ycmd server有什么可以查错的方式吗?

我使用的是vim下安装的的ycmd, 在vim下是可以正常工作的,关闭ycmd layer后flycheck可以正常工作了。ycmd的确没有如期工作。

我之前在user-config中对ycmd的设置如下:

(add-hook 'c-mode-hook 'ycmd-mode)
(add-hook 'python-mode-hook 'ycmd-mode)
(set-variable 'ycmd-server-command '("python" "Users/current_username/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd"))

请问是否设置有误?

我之前看过一个blog, 上面说配置最后要带上“ycmd/” (set-variable 'ycmd-server-command '(“python” “Users/current_username/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/”))

第三个路径最后少了个/

加上后 似乎没什么效果 。。。

看过您的博客:Configure c/c++ layer for pure c in Spacemacs, 不过还没有解决问题,最直观的便是ycmd后老是跟着一个感叹号!..

打开相关文件是没有问题的,但是一旦使用ycmd的一些功能便有错误产生,比如c++文件中使用space-m-g-g便会产生ERROR : Ycmd server timeout 不知道您是否有遇到过?

尝试了您的建议 但似乎还是那样。。。。。 一旦加上ycmd layer, c+±mode下flycheck便无法正常工作了。

Check the “ycmd-buffer” log,

请问查看 “ycmd-buffer” 准确的操作命令是什么? 我对emacs还不太熟悉,请见谅。

1 个赞

出现这个错误提示就是 ycmd 没有配置好

你检查一下你的配置

一、可能是ycmd 路径问题,参考这里

二、你的配置中并没有让 ycmd 支持 c++

我的配置是这样的,你参考下

  (add-hook 'c++-mode-hook 'ycmd-mode)
  (set-variable 'ycmd-server-command '("python" "/Users/carter/Softwares/ycmd/ycmd/"))
  (set-variable 'ycmd-extra-conf-whitelist '("~/Github/leveldb/*"))
  (require 'company-ycmd)
  (company-ycmd-setup)

  (require 'flycheck-ycmd)
  (flycheck-ycmd-setup)

虽然没有解决,还是非常感谢。

这是我的ycmd-server buffer内容:

Fatal Python error: PyThreadState_Get: no current thread

Process ycmd-server abort trap: 6

关于这个错误,我已经Google过相关内容,说是emacs使用的Python版本问题,请问您有什么解决的建议吗?

关于设置 python的设置,我在dotspacemacs/layers里面的做法似乎并没有生效。。

  python-shell-interpreter "/usr/local/bin/python3"

你好,我在使用flycheck的时候会遇到这样的问题,打开hrl文件的时候会message “ Checker erlang returned non-zero exit code 1, but no errors from output: Unknown extension: ‘.hrl’”, 虽然好像不怎么影响我code, 但是,这个flycheck有那个设置选项可以屏蔽掉这种找不到后缀名文件的提示或者有更好的解决方法?我查找过flycheck的issue,发现没有提这个问题,也看了一下那个flycheck的选项设置,发现没有找到。

可以自己写个 flychecker 去做语法检测。