【问题标题】:Conform on-the-fly to PEP8 using flycheck on emacs在 emacs 上使用 flycheck 即时符合 PEP8
【发布时间】:2023-04-09 23:03:02
【问题描述】:

我将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 文件。)

更新2

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

【问题讨论】:

  • 在 Python 缓冲区中执行 M-x flycheck-verify-setup 时会看到什么?
  • @elethan 谢谢。再次提醒我,尝试调试 Emacs 问题而不使用孤立且最小的.emacs 是没有意义的。在几行上运行eval-region 具有误导性。我已经修改了问题。

标签: python emacs flycheck


【解决方案1】:

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 和 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 检查的程序之一。

下一个练习:挂钩 flycheck 仅适用于 Python(也可能是 C/C++/Java/JS/..)。特别是,不要担心使 elisp 文件符合犹太教规。根据需要选择性地为语言激活flycheck

【讨论】:

    猜你喜欢
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多