Configurando o Vim para Python

Eu realmente gosto do editor Emacs para Python por causa de suas abas inteligentes, por exemplo, se eu tiver algo assim

def foo():
    if bar:
         blah
         [b]eep

e eu pressiono tab no cursor (que está no b do sinal sonoro), ele não inserirá uma nova guia causando um erro de sintaxe, mas alternaria entre os possíveis níveis nos quais o sinal sonoro pode estar. Existe alguma maneira de obter esse efeito no Vi

questionAnswers(16)

yourAnswerToTheQuestion