Сделайте cnext и cprevious loop обратно в начало

12

Если я запускаюсь, :cnextкогда уже в конце списка быстрых исправлений, я получаю сообщение об ошибке

E553: No more items

и ничего не происходит Вместо этого, когда я вхожу :cnextв конец списка, я бы хотел, чтобы vim возвращался к первой записи быстрого исправления. Можно ли настроить Vim для этого поведения?

lwassink
источник
1
Уже много раз отвечал в прошлом. Вот один пример.
Сато Кацура

Ответы:

17

Вы можете написать несколько команд:

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

Если исключение поймано, оно переходит к первому / последнему элементу. Вы можете использовать, cabbrevчтобы вам не приходилось использовать команды верхнего регистра:

cabbrev cnext Cnext
cabbrev cprev CPrev
cabbrev lnext Lnext
cabbrev lprev Lprev
Томми А
источник