Domanda

C'è una scorciatoia di Vim per saltare alla lista degli argomenti della funzione corrente?Mi trovo spesso a dover pasticciare con la lista degli argomenti di una funzione, ed è fastidioso avere a che fare ?def o ?funzione o 10k o che si fino a quando ho finalmente arrivare ad essa, quindi /( t( o 5e per ottenere la giusta posizione in un elenco di argomenti, e così via.Sarebbe bello se riuscissi a colpire ,per esempio, e ottenere immediatamente messo in modalità di inserimento a fine/inizio dell'elenco di argomenti.

Possibili approcci:

  • Pieghevole
  • Il supporto di Tag (ctags)

Inoltre, sto usando Python, in modo da soluzioni basate sulle parentesi graffe, purtroppo, non funziona.

Se tale collegamento esiste, mi limiterò a scrivere e postare qui come risposta.:-)

È stato utile?

Soluzione

Il senso infallibile per raggiungere l'inizio di una funzione è quello di utilizzare [[.Così si utilizza

mappa ,ma[[kf(un

così si può prendere per la definizione di funzione, cerca la prima occorrenza di "(" e poi si mette in modalità di inserimento.

Altri suggerimenti

Disclaimer, non conosco Python, presumo una funzione Python possono essere identificati da "funzione" o "def" dalla sua domanda.Basta cambiare l'espressione regolare di conseguenza.

Potrebbe essere qualcosa di simile a:

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

?

NB:

  • Ho usato il search() per non rovinare la storia della ricerca ;searchpair() può essere una scelta migliore in quanto sarà solo saltare la definizione della funzione che ci sono all'interno, invece della funzione precedente.
  • Questo è progettato per lavorare con Python solo, io uso <buffer> per non rovinare la chiave di associazione non-Python file;questa mappatura è meglio definito in python ftplugin.

HTH,

mappa ,ma[{F(a

Colpita ,per passare all'elenco di argomenti, quindi `una per tornare a dove eravate quando avete richiamato ,un.Caveat:[{ salti indietro all'ultimo impareggiabile { carattere, quindi se siete all'interno di un ciclo o di altra struttura di controllo, che vi porterà all'inizio di questo, invece.

Non so di un modo per arrivare all'inizio della funzione in un infallibile modo.Se sei coerente nel tuo tabulazione, si può essere in grado di fare qualcosa di simile a questo:

mappa ,ma?funzione :nohlf(un

dove, se non si utilizza una singola scheda prima di definire le funzioni, devi cambiare il valore appropriato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top