Ответ на ваш прямой вопрос так же, как @EvergreenTree опубликовал. Однако я чувствую, что вам не хватает некоторых встроенных инструментов Vim для создания / компиляции / линтинга проектов. В частности, :make
список быстрых исправлений.
Что дает :make
нам использование?
Использование :make
позволяет собирать ошибки в список, известный как список быстрых исправлений. Используя быстрое исправление, вы можете перемещаться между ошибками в ваших файлах, поэтому вы переходите прямо туда, где компилятор говорит об ошибке (удобно, правда?).
:сделать
Запуск :make
выполнит программу make 'makeprg'
. Затем проанализируйте вывод с помощью 'errorformat'
и поместите каждую запись в список быстрых исправлений.
Обычно по 'makeprg'
умолчанию используется make
команда, которая запускает Makefile
. Однако вы можете изменить свой с 'makeprg'
помощью :compiler
команды или установить его непосредственно.
Вы также можете передать дополнительные аргументы :make
. например:make clean
Примечание: во время выполнения :make
часто вывод команды выводится внизу экрана с приглашением нажать клавишу ввода. Просто нажмите Enter, поскольку все выходные данные будут доступны в списке быстрых исправлений. Вы можете подавить это через :silent
, например :silent make
.
Обычная настраиваемая команда для автоматической сборки:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
список быстрых исправлений
После того, как вы запустите :make
ваш список быстрых исправлений, будет храниться вывод компилятора.
Используйте следующую команду для навигации по списку быстрых исправлений.
:copen
открыть окно быстрого исправления
:cclose
закрыть окно быстрого исправления
:cnext
/ :cprev
для перехода к следующему / предыдущему элементу
:cc
распечатать внизу текущую ошибку или :cc 3
показать конкретную ошибку в этом примере 3
Лично я использую Тима папы неразделенного плагин для перемещения по списку QuickFix.
А как насчет :make
автоматического и бесшумного запуска ?
Вы можете сделать это с таким :autocmd
же, как вы, где.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
В качестве бонуса я добавил при открытии окна быстрого исправления через, :cwindow
если есть какие-либо ошибки присутствуют.
Примечание: должен быть более конкретным с этим шаблоном файла на BufWritePost
autocmd, чтобы не связанные файлы не создавались.
Там еще больше ?!
Это использует только несколько встроенных команд Vim плюс несколько autocmd для убеждения. Есть, конечно, плагины и инструменты, которые могут помочь вам
- Dispatch.vim может использоваться для
:make
асинхронного запуска заданий.
- Синтаксический плагин проверяет файл после
:write
.
- Ale.vim (Asynchronous Lint Engine) - это плагин для обеспечения линтинга в NeoVim и Vim 8 во время редактирования текстовых файлов.
- Unimpaired.vim упрощает управление списком быстрых исправлений.
- Обычные старые Makefiles. Если вы
./script.sh
не очень сложны, вы можете попробовать использовать make. Он может масштабировать и выполнять больше задач позже и является распространенным инструментом построения.
- Вы можете использовать Vim Awesome для поиска дополнительных плагинов, которые могут помочь.
Вывод
Лично я интегрирую :make
и быстрое исправление в свой рабочий процесс. Я считаю, что захват результатов вашего процесса сборки и фиксация ошибок окупаются. В качестве дополнительного бонуса вам, возможно, станет удобнее использовать список быстрых исправлений, и вы сможете использовать этот список для других приложений, например :grep
.
Для получения дополнительной помощи см .:
:h :make
:h quickfix
:h 'makeprg'
:h 'errorformat'
:h :compiler
:h :copen
:h :cwindow
:h :cnext
:h :cc