使用emacs上的flycheck即时与PEP8进行通信

时间:2017-04-20 16:18:54

标签: python emacs flycheck

我将flycheck解包到~/.并将以下行放在~/.emacs中:

;; (package-initialize)
(setq load-path (cons "~/flycheck-20170415.1006" load-path))
(require 'flycheck)
(add-hook 'after-init-hook #'global-flycheck-mode)

启动Emacs 24.5.1我得到:

File error: Cannot open load file, no such file or directory, let-alist

使用Emacs 25.1.1我得到:

File error: Cannot open load file, No such file or directory, dash

(如果我取消注释(package-initialize),这些错误不会改变.Emacs 25现在会插入(package-initialize),通过长时间的设置来推动我们这些错误。)

我的(后续)目标是使Python代码即时符合PEP8。解决上述问题后,我将添加

(setq exec-path (append exec-path '("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin")))

简要~/.emacs/opt/..2.7/bin是MacPorts放置flake8的地方),但在我指定编程语言之前显然存在问题。

更新

这比我预期的要痛苦得多。 Flycheck对于通过软件包进行安装非常苛刻,并将here描述的步骤合并到我通常的~/.emacs导致了臭名昭着的

load-with-code-conversion: Symbol’s value as variable is void: <!DOCTYPE

错误。 (我很确定我没有隐藏在.el扩展名下的HTML文件。)

UPDATE2

呃..我的立场得到了纠正!有些dash.el进入了我常用的elisp目录,而flycheck依赖于它,但它确实是一个HTML文件。

1 个答案:

答案 0 :(得分:0)

Flycheck取决于dashlet-alistseq

下载文件

  84766  dash.el
 381142  flycheck.el
   6136  let-alist.el
  17589  seq-24.el
  17684  seq-25.el
   1540  seq.el

并将它们放入~/.concise-elisp。 seq需要三个文件,因为它有Emacs 24和E的替代实现。 25。

将以下几行放在~/.emacs

;; Even if you are not using packages, you need the following
;; commented-out line, or else Emacs 25 will insert one for you.
;; (package-initialize)

(setq load-path (cons "~/.concise-elisp" load-path))
(require 'flycheck)
(add-hook 'after-init-hook #'global-flycheck-mode)
(setq exec-path (append exec-path '("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin")))

最后一行指向MacPorts放置flake8的位置。 Flake8是flycheck委托PEP8检查的程序之一。

下一个练习:只为Python(也许是C / C ++ / Java / JS / ..)挂钩flycheck。特别是,不要担心使elisp文件犹太洁食。根据需要有选择地激活flycheck语言。