Vim atalho para adicionar argumentos para uma função
-
01-07-2019 - |
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. : -)
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.