Machen Sie cnext und cprevious loop zurück zum Anfang

11

Wenn ich ausgeführt werde, :cnextwenn ich bereits am Ende der Quickfix-Liste bin, wird die Fehlermeldung angezeigt

E553: No more items

und nichts passiert. Stattdessen :cnextmöchte ich, dass vim beim Eingeben am Ende der Liste zum ersten Quickfix-Eintrag zurückkehrt. Ist es möglich, vim für dieses Verhalten zu konfigurieren?

lwassink
quelle
1
Schon oft in der Vergangenheit beantwortet. Hier ist ein Beispiel.
Sato Katsura

Antworten:

16

Sie können einige Befehle schreiben:

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

Wenn die Ausnahme abgefangen wird, springt sie zum ersten / letzten Element. Sie können verwenden, cabbrevdamit Sie nicht die Großbuchstaben verwenden müssen:

cabbrev cnext Cnext
cabbrev cprev CPrev
cabbrev lnext Lnext
cabbrev lprev Lprev
Tommy A.
quelle
Zum Entfernen aktualisiert, silent!da die Statuszeile beim Umbrechen nicht aktualisiert wurde.
Tommy A