在 emacs 上使用 flycheck 即时符合 PEP8
Conform on-the-fly to PEP8 using flycheck on emacs
我将 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
错误。 (我很确定我没有 HTML 文件隐藏在 .el
扩展名下。)
更新2
呃..我纠正了!一些 dash.el
进入了我常用的 elisp 目录,flycheck 依赖于它,但它确实是一个 HTML 文件。
Flycheck
取决于 dash
, let-alist
, and seq
.
下载文件
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 和 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 挂钩 flycheck
(也许 C/C++/Java/JS/..)。特别是,不要担心使 elisp 文件符合标准。根据需要有选择地激活 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
错误。 (我很确定我没有 HTML 文件隐藏在 .el
扩展名下。)
更新2
呃..我纠正了!一些 dash.el
进入了我常用的 elisp 目录,flycheck 依赖于它,但它确实是一个 HTML 文件。
Flycheck
取决于 dash
, let-alist
, and seq
.
下载文件
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 和 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 挂钩 flycheck
(也许 C/C++/Java/JS/..)。特别是,不要担心使 elisp 文件符合标准。根据需要有选择地激活 flycheck
语言。