Pergunta

Existe um atalho Vim para saltar para a lista de argumentos da função atual? Sinto-me frequentemente a necessidade de mexer com a lista de argumentos de uma função, e é uma espécie de chato ter que fazer? Def ou? Função ou 10k ou que-ter-lhe até que eu finalmente chegar a ele, então / (ou t ( ou 5e para chegar à posição certa na lista de argumentos, e assim por diante. seria ótimo se eu pudesse bater, uma por exemplo, e começar imediatamente colocado em modo de inserção no final / início da lista de argumentos.

abordagens possíveis:

  • Folding
  • Suporte Tag (ctags)

Além disso, estou usando Python, por isso, soluções baseadas em chaves, infelizmente, não vai funcionar.

Se não existe tal atalho, eu vou escrever um e postá-lo aqui como uma resposta. : -)

Foi útil?

Solução

A prova maneira idiota de chegar ao início de uma função é usar [[. Então você usa

mapear, uma ma [[KF (a

para que ele possa levá-lo para a definição da função, procurar a primeira ocorrência de "(" e, em seguida, colocá-lo no modo de inserção.

Outras dicas

Disclaimer, eu não sei Python, eu assumir uma função Python pode ser identificado por "função" ou "def" de sua pergunta. Basta alterar o regex em conseqüência.

Pode ser algo como:

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

?

NB:

  • Eu tenho usado search (), a fim de não atrapalhar o histórico de pesquisa; searchpair () pode ser uma escolha melhor, pois só irá saltar para a definição da função estamos dentro, em vez da função anterior.
  • Como este se destina a trabalhar com Python única, eu uso , a fim de não atrapalhar o em arquivos não-Python de ligação chave; esse mapeamento é melhor definida em um ftplugin python.

HTH,

mapa, uma ma [{F (a

Hit, um para ir para a lista de argumentos, então `um para voltar para onde você estava quando você invocado, a. Ressalva:. [{Salta de volta para a última inigualável {caráter, por isso, se você está dentro de uma outra estrutura de controle de circuito ou, ele irá levá-lo para o início de que, em vez

Eu não sei de uma maneira de chegar ao início da função de uma maneira fool-proof. Se você é consistente sobre a sua tabulação, você pode ser capaz de fazer algo parecido com isto:

mapa, uma ma função:? Nohlf (a

onde, se você não usar uma única guia, antes de definir suas funções, você mudaria para o valor apropriado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top