Movimento para mudar para a definição de função Python de nível não superior

8

Eu estou procurando algo como [[(ou [], ]], ][) que trabalha com definições de função não de nível superior, em vez da próxima linha com uma classe de nível superior ou definição de função no primeiro caractere.

class Foo():
  def __init__(self):
    pass

  def baz(self): #jump from here...
    pass

  def box(self): #... to here without searching or...
    pass

biz = 123

def bar(): #... without going straight here
  pass

Parece que, por padrão, o vim ignora definições de variáveis ​​e outras coisas que começam no primeiro caractere de uma linha, mas quando eu estou examinando os métodos de classe, meu único recurso é procurar def XYZ.

TankorSmash
fonte

Respostas:

12

]m(e [m) parecem se encaixar na conta. De :help ]m:

                        *]m*
]m          Go to [count] next start of a method (for Java or
            similar structured language).  When not before the
            start of a method, jump to the start or end of the
            class.  When no '{' is found after the cursor, this is
            an error.  |exclusive| motion. {not in Vi}

Basta pressionar ]mpara pular para o local exato que você deseja.

Maçaneta
fonte