Movimiento para pasar a la definición de función Python de nivel no superior

8

Busco algo así como [[(o [], ]], ][) que trabaja con las definiciones de funciones que no son de nivel superior en lugar de la siguiente línea con una clase de nivel superior o definición de la función en el primer carácter.

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 defecto, vim ignora las definiciones de variables y otras cosas que comienzan en el primer carácter de una línea, pero cuando estoy buscando métodos de clase, mi único recurso es buscar def XYZ.

TankorSmash
fuente

Respuestas:

12

]m(y [m) parecen encajar en la factura. 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}

Simplemente presionando ]msaltará al lugar exacto que desea.

Perilla de la puerta
fuente