Faça o cnext e o loop cprevious de volta ao início


11

Se eu executar :cnextquando já estiver no final da lista de correções rápidas, recebo a mensagem de erro

E553: No more items

e nada acontece. Em vez disso, quando entrar :cnextno final da lista, gostaria que o vim voltasse para a primeira entrada do quickfix. É possível configurar o vim para esse comportamento?


1
Já respondeu muitas vezes no passado. Aqui está um exemplo.
Sato Katsura

Respostas:


16

Você pode escrever alguns comandos:

command! Cnext try | cnext | catch | cfirst | catch | endtry
command! Cprev try | cprev | catch | clast | catch | endtry

command! Lnext try | lnext | catch | lfirst | catch | endtry
command! Lprev try | lprev | catch | llast | catch | endtry

Se a exceção for detectada, ela salta para o primeiro / último item. Você pode usar cabbrevpara não precisar usar os comandos em maiúsculas:

cabbrev cnext Cnext
cabbrev cprev CPrev
cabbrev lnext Lnext
cabbrev lprev Lprev

Atualizado para remover, silent!pois fazia com que a linha de status não fosse atualizada ao quebrar.
Tommy A
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.