首页 > 解决方案 > 我可以延迟 Pylint 在 Sublime Text 3 中保存时运行它吗?

问题描述

我将 Pylint 与Sublime Text 3 on Windows 8.1. 它配置为在保存时运行Ctrl+S

// Set to true to automatically run Pylint on save
"run_on_save": true,

我喜欢这个。当我点击“构建”命令的快捷方式时出现问题 -Ctrl+B或者F7没有保存文件:Python 脚本和 Pylint 同时启动并且脚本输出(我在下面的“构建结果”窗格中看到)经常被破坏(大部分打印输出消失),或者导致 Pylint 错误消息框或我的 Sublime Text 崩溃。

但是当我第一次保存文件Ctrl+S然后运行它时没有任何问题。

问题是我可以将 Pylint 配置为延迟启动(比如 1 秒),Ctrl+S这样它不会影响脚本运行吗?

PS 对 Sublime-linter 设置的 Pylint 设置的简短搜索没有产生有用的结果。我检查的资源:Running Pylint 、 Pylint FAQSublime Linter Settings。我没有发现任何关于修改pylintrc文件的有趣内容(pylintrc 示例)。

有任何想法吗?提前致谢。

标签: sublimetext3sublimetextpylintsublime-text-plugin

解决方案


您可以编写一个继承ViewEventListener该类的插件并实现on_post_save_async()回调方法以休眠一秒钟(真的足够了吗,它总是足够了吗!?)然后用于self.view.run_command()启动Pylintrun_on_save如果这样做,请确保为假。这是API 的相关部分

这样做不是一个好主意——你要求输出面板、错误消息和 Sublime 崩溃的进一步问题。

我建议您完全控制手动启动 linter。将Pylint run_on_save设置为false。分配方便的键以在需要时启动 linter,并摆脱每次保存文件时自动运行它的习惯。Linter 就像拼写检查器,不时运行它们并一次性完成所有必要的更改要高效得多,而不是让 linter 一遍又一遍地运行,反复验证相同的代码,只是为了检查最多最近几行。

如果您尝试编写越来越多的代码而不进行构建或 linting,那么您的编码的准确性和速度将会及时提高。


推荐阅读