使用Vim编辑python的错误

时间:2011-01-30 02:51:30

标签: python vim macvim

当我在Vim中编辑python文件(使用MacVim),然后按o插入新行时,Vim会抛出以下错误:

Error detected while processing function <SNR>20_CheckAlign..GetPythonIndent:
line   30:
E121: Undefined variable: dummy
Press ENTER or type command to continue
Error detected while processing function <SNR>20_CheckAlign..GetPythonIndent:
line   30:
E15: Invalid expression: line('.') < 7 ? dummy : synIDattr(synID(line('.'), col('.')
, 1), 'name') =~ '\(Comment\|String\)$'

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

我弄明白了这个问题。只要文件的选项卡设置与编辑器的选项卡设置不同,就会抛出错误。例如,我的test.py文件被设置为每个选项卡2个空格,标签扩展为空格,而我的编辑器设置为每个标签4个空格,没有展开。

所以解决方案解决方法是将Vim的选项卡设置设置为正在编辑的python文件的设置。

答案 1 :(得分:1)

在python文件中使用以下模式行,其标签设置是一致的。

# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4

或者,您也可以在.vimrc文件中设置它们。

set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

使用python文件时,这些是确保一致性的最小限度。 您可以使用一些很棒的vimrc示例。

答案 2 :(得分:0)

更改缩进设置对我没有用,所以我通过修改python缩进文件(/path/to/vim/indent/python.vim)解决了这个问题。

GetPythonIndent函数中,我只是将dummy的所有实例替换为0。这解决了我的问题。

或者你可以将s:maxoff设置为高得离谱的东西,但这不太优雅。