Question

Existe-t-il un raccourci Vim pour accéder directement à la liste des arguments de la fonction actuelle? Je me trouve souvent dans le besoin de jouer avec la liste d'arguments d'une fonction, et c'est assez ennuyant de devoir faire? Def or? Function ou 10k ou ce que vous avez jusqu'à ce que j'y arrive enfin, puis / (ou t ( ou 5e pour arriver à la bonne position dans la liste d'arguments, et ainsi de suite. Ce serait formidable si je pouvais simplement appuyer sur, par exemple, et passer instantanément en mode insertion à la fin / au début de la liste d'arguments.

Approches possibles:

  • Pliage
  • Prise en charge des balises (ctags)

De plus, j'utilise Python. Par conséquent, les solutions basées sur des accolades ne fonctionnent malheureusement pas.

Si un tel raccourci n'existe pas, je n'en écrirai qu'un et le posterai ici comme réponse. : -)

Était-ce utile?

La solution

Le moyen le plus sûr d’arriver au début d’une fonction est d’utiliser [[. Donc, vous utilisez

carte, un ma [[kf (a

pour que vous puissiez accéder à la définition de la fonction, recherchez la première occurrence de & "; (&"; puis mettez-vous en mode insertion.

Autres conseils

Avertissement, je ne connais pas Python, je suppose qu'une fonction Python peut être identifiée par & "; fonction &"; ou " def " de votre question. Il suffit de changer l'expression rationnelle en conséquence.

Peut être quelque chose comme:

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

?

NB:

  • J'ai utilisé search () afin de ne pas gâcher l'historique de recherche; searchpair () est peut-être un meilleur choix car il ne fera que passer à la définition de la fonction dans laquelle nous nous trouvons, au lieu de la fonction précédente.
  • Comme cela ne fonctionne qu'avec Python, j’utilise < buffer > afin de ne pas gâcher la liaison de clé dans des fichiers non Python; cette correspondance est mieux définie dans un ftplugin python.

HTH,

carte, un ma [{F (a

Hit, a pour aller à la liste des arguments, puis `a pour revenir à l’endroit où vous étiez lorsque vous avez invoqué, a. Mise en garde: {{retourne au dernier caractère {sans correspondance. Par conséquent, si vous vous trouvez dans une boucle ou dans une autre structure de contrôle, vous serez redirigé vers le début.

Je ne sais pas comment arriver au début de la fonction de manière irréprochable. Si vous êtes cohérent à propos de votre tabulation, vous pourrez peut-être faire quelque chose comme ceci:

map, une fonction principale: nohlf (a

où, si vous n'utilisez pas un seul onglet avant de définir vos fonctions, vous passez à la valeur appropriée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top