Mover para a próxima dobra do nível 1 no vim

1

Estou procurando uma boa maneira de pular entre as definições de função no código C ++. Eu gosto da idéia de usar dobras para isso, porque eu posso passar para a próxima função / método usando zj , mas isso só funciona se não houver dobras aninhadas dentro das funções (por exemplo, definindo foldnestmax=1 ).

Existe uma maneira de dizer ao vim para "passar para a próxima dobra do nível 1", para que eu possa facilmente passar para o próximo método?

Observação: eu sei sobre ]m e [m e não é o que estou procurando. Eu preferiria uma solução baseada em dobras.

Obrigado!

    
por Caetano Sauer 24.09.2014 / 10:51

1 resposta

2

Você pode set foldnestmax=1 temporariamente, passar para a próxima dobra e definir a opção de volta ao seu valor original:

:nnoremap <silent> zj :let max = &fdn<bar>let &fdn = 1<CR>zj:let &fdn=max<CR>
:nnoremap <silent> zk :let max = &fdn<bar>let &fdn = 1<CR>zk:let &fdn=max<CR>
    
por 24.09.2014 / 13:58