vim-flake8似乎忽略了我的项目特定的配置文件。如果我从我的项目根目录中的命令行运行flake8,它可以工作,但是当我打开vim并尝试对我的文件运行flake8时,它没有接受该设置。我知道这是因为它使用的默认行长度为79,而不是我的项目特定的120。
我读过这篇文章:flake8 not picking up config file,但它似乎没有帮助。它提到了一年前在评论中修复的错误。
在我的项目根目录中,我有一个.flake8
文件,其中包含[flake8]
部分。
vim-flake8如何确定项目根目录以及查找配置文件的位置?它只是使用打开Vim的目录吗?
答案 0 :(得分:2)
我今天遇到了类似的问题,我通过在~/.vimrc
(或实际上是我的~/.config/nvim/init.vim
)文件中添加以下内容来解决这个问题:
let g:syntastic_python_flake8_config_file='.flake8'
这是基于Syntastic在language-specific configuration files上的官方文档。
答案 1 :(得分:0)
在我的OSX上也有同样的问题,并且部分解决了它。有最新版本的syntastic(git clone today)和flake8 3.0.4。 Vim 7.4。
flake8从命令行运行正常并选择了我的全局〜/ .config / flake8。如果我有配置文件,Vim没有输出任何内容,但是在没有flake8配置文件的情况下工作正常。
我通过让flake8配置不在文件系统但在我的.vimrc中来解决了这个问题:
let g:syntastic_python_flake8_args='--ignore=E203,E231'
但这不是最好的解决方案,因为配置不是共享的。
对于已启动的开发人员,当我启用调试时
let g:syntastic_debug = 1
我得到了这个输出:
syntastic: 4.516990: &shell = '/bin/bash', &shellcmdflag = '-c', &shellpipe = '2
>&1| tee', &shellquote = '', &shellredir = '>%s 2>&1', &shellslash = 0, &shellte
mp = 1, &shellxquote = '', &shellxescape = ''
syntastic: 4.517587: UpdateErrors (auto): default checkers
syntastic: 4.517927: CacheErrors: default checkers
syntastic: 4.518502: g:syntastic_aggregate_errors = 0
syntastic: 4.518666: getcwd() = '/Volumes/myproject/src'
syntastic: 4.525418: CacheErrors: Invoking checker: python/flake8
syntastic: 4.526113: SyntasticMake: called with options: {'errorformat': '%E%f:%
l: could not compile,%-Z%p^,%A%f:%l:%c: %t%n %m,%A%f:%l: %t%n %m,%-G%.%#', 'make
prg': 'flake8 main.py', 'env': {'TERM': 'dumb'}}
syntastic: 4.727963: system: command run in 0.201426s
syntastic: 4.729751: getLocList: checker python/flake8 returned 1
syntastic: 4.730094: getLocList: checker python/flake8 run in 0.204568s
答案 2 :(得分:0)
我今天遇到了同样的问题。 Flake8从命令行运行良好,但在vim内部,每个配置文件似乎都被syntastic忽略了。在vim内部运行flake8(使用:!flake8)获取配置。
根据Tomi的回答,我通过添加
修复了它 let g:syntastic_python_flake8_args='--config=setup.cfg'
到我的vim配置,如果从项目根目录启动vim,该配置应该有效。仍然有点hacky但至少flake8配置保持在一个地方。