Motion pour passer à une définition de fonction Python non supérieure

8

Je cherche quelque chose comme [[(ou [], ]], ][) qui fonctionne avec des définitions de fonction non de haut niveau au lieu de la ligne suivante avec une classe de niveau supérieur ou une définition de fonction du premier caractère.

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

Il semble que, par défaut, vim ignore les définitions de variables et d'autres choses qui commencent au premier caractère d'une ligne, mais lorsque je regarde les méthodes de classe, mon seul recours est de rechercher def XYZ.

TankorSmash
la source

Réponses:

12

]m(et [m) semblent correspondre à la facture. 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}

Une simple pression sur ]mva sauter à l'endroit exact où vous voulez.

Poignée de porte
la source