Pregunta

¿Existe un atajo de Vim para saltar a la lista de argumentos de la función actual?A menudo tengo que meterme con la lista de argumentos de una función, y es un poco molesto tener que hacer ?def o ?function o 10k o lo que sea hasta que finalmente llego a eso, luego /( o t( o 5e para llegar a la posición correcta en la lista de argumentos, y así sucesivamente.Sería fantástico si pudiera presionar a, por ejemplo, y pasar instantáneamente al modo de inserción al final/principio de la lista de argumentos.

Posibles enfoques:

  • Plegable
  • Soporte de etiquetas (ctags)

Además, estoy usando Python, por lo que desafortunadamente las soluciones basadas en llaves no funcionarán.

Si no existe tal atajo, escribiré uno y lo publicaré aquí como respuesta.:-)

¿Fue útil?

Solución

La forma infalible de llegar al comienzo de una función es usar [[.Entonces usas

mapa ,a ma[[kf(a

para que pueda llevarlo a la definición de la función, busque la primera aparición de "(" y luego lo coloque en el modo de inserción.

Otros consejos

Descargo de responsabilidad, no conozco Python, supongo que una función de Python se puede identificar mediante "función" o "def" de su pregunta.Simplemente cambie la expresión regular en consecuencia.

Puede ser algo como:

   :nnoremap <buffer> [m :call search('def\|function', 'b')<cr>f(

?

NÓTESE BIEN:

  • He utilizado search() para no estropear el historial de búsqueda;searchpair() puede ser una mejor opción ya que solo saltará a la definición de la función en la que nos encontramos, en lugar de a la función anterior.
  • Como esto está pensado para funcionar solo con Python, uso <buffer> para no estropear la combinación de teclas en archivos que no son de Python;Este mapeo se define mejor en un ftplugin de Python.

HTH,

mapa ,a ma[{F(a

Presione ,a para ir a la lista de argumentos, luego `a para regresar a donde estaba cuando invocó ,a.Advertencia:[{ vuelve al último carácter { no coincidente, por lo que si estás dentro de un bucle u otra estructura de control, te llevará al principio.

No conozco una manera de llegar al comienzo de la función de forma infalible.Si es coherente con la tabulación, es posible que pueda hacer algo como esto:

mapa, una función ma?: nohlf (a

donde, si no usa una sola pestaña antes de definir sus funciones, cambiará al valor apropiado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top