Подтвердить что ты не робот

Перейти к следующей ошибке/коду, выделенному красным цветом

При работе с конфликтами слияния обычно теги >>>>>> и ======, вставленные DCVS, синтаксически неверны для файла, в котором я находится, и отображаются, как выделено красным. При работе с конфликтами слияния было бы полезно иметь команды для перехода к этой ошибке. Когда я набираю :cnext, я просто получаю сообщение "Нет ошибок". Это конфликты слияния Mercurial, поэтому я не могу использовать Fugitive, но я вообще предпочитаю редактировать конфликты слияния вручную.

Есть ли способ перейти к следующей синтаксической ошибке в файле? Я думаю, что эти ошибки продиктованы файлом подсветки синтаксиса.

4b9b3361

Ответ 1

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

Фактический ответ заключается в том, что вы можете использовать :lnext для перехода к следующей ошибке или :lprev или ] l и [ l (это нижний регистр Ls), если у вас есть vim-unimpaired, что вы делаете, потому что вы не должны использовать Vim без него.

Это будет не на самом деле перейти к следующей выделенной текстовой группе с красным цветом/ошибкой, но будет переходить на то, что ваш синтаксический плагин диктует ошибку (и заполняет список местоположений). В Vim невозможно, чтобы перейти к определенной группе подсветки, потому что никто до сих пор не понял, как это сделать.

Плагин SRDispHiGrp близок, но если вы не можете сказать от имени, он слишком сокрушен и запутан для использования человеком.

Ответ 2

Я думаю, что вы были на правильном пути с :cnext.

:cnext и :cprevious - команды Vim QuickFix; вы можете воспользоваться ими, используя плагин проверки кода, который использует режим QuickFix, например pyflakes.vim для Python и jslint.vim/jshint.vim для JavaScript.

Это приведет к тому, что синтаксические ошибки будут отмечены красноватыми красными подчеркиваниями, в отличие от сильной синтаксической ошибки подсветки, которую, я считаю, вы видите. Затем вы можете использовать :cnext и :cprevious, чтобы перейти к следующим и предыдущим помеченным ошибкам.