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?


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

Zum Entfernen aktualisiert, silent!da die Statuszeile beim Umbrechen nicht aktualisiert wurde.
Tommy A
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.