在MacVim中,我将以下代码保存为test.py
print "Hello world! python2"
,这显然是python3的错误,但是 运行后:w保存文件,没有错误信息, 以下是〜/ .vimrc的一部分,全部是关于Syntastic:
" Syntastic
"" Recommended settings
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
"" Display checker-name for that error-message
let g:syntastic_aggregate_errors = 1
"" I use the brew to install flake8
let g:syntastic_python_checkers=['flake8', 'python3']
如何在终端中运行test.py时使用Syntastic检测此类错误:
NingGW:Desktop ninggw$ python3 test.py
File "test.py", line 1
print "Hello world! python2"
^
SyntaxError: Missing parentheses in call to 'print'
以下是:SyntasticInfo说:
Syntastic version: 3.8.0-10 (Vim 800, Darwin, GUI)
Info for filetype: python
Global mode: active
Filetype python is active
The current file will be checked automatically
Available checkers: flake8 python
Currently enabled checker: flake8
Press ENTER or type command to continue
答案 0 :(得分:5)
flake8
是一个Python包。它使用Python的内置工具来解析代码so it accepts syntax for the Python version that it belongs to。
如何为python3
安装安装它取决于安装本身的安装方式 - unless you're fine with using pip
。
答案 1 :(得分:1)
来自FAQ:
<强> 4.11。问:如何检查为不同版本的Python编写的脚本?
一个。安装Python版本管理器,例如virtualenv或pyenv,激活相关Python版本的环境,并在其中安装您想要使用的检查器。在
g:syntastic_python_checkers
中相应地设置vimrc
,然后从虚拟环境运行Vim。如果您从桌面管理器而不是从终端启动Vim,则可能需要在检查程序周围编写包装脚本,以在运行实际检查之前激活虚拟环境。然后,您需要将相关的
g:syntastic_python_<checker>_exec
变量指向包装器脚本。