Відповідь на ваше пряме запитання так само, як @EvergreenTree розміщено. Однак я відчуваю, що вам не вистачає деяких інструментів Vim, побудованих для складання / складання / обшивки проектів. Найбільше :make- список швидких виправлень.
Що :makeнас використовує використання ?
Використання :makeдозволяє збирати свої помилки до списку, відомого як список швидких виправлень. За допомогою виправлення ви можете переходити між помилками у ваших файлах, тож ви переходите прямо туди, де компілятор каже, що помилка (зручна правда?).
: зробити
Запуск :makeбуде виконувати програму грим, 'makeprg'. Потім проаналізуйте вихід 'errorformat'і додайте кожен запис до списку швидких виправлень.
Зазвичай 'makeprg'за замовчуванням для makeкоманди, яка виконує a Makefile. Однак ви можете змінити свою команду 'makeprg'за допомогою :compilerкоманди або встановити її безпосередньо.
Ви також можете передавати додаткові аргументи :make. напр:make clean
Примітка: біг :makeчасто показує вихід команди в нижній частині екрана із запитом натиснути клавішу Enter. Просто натисніть клавішу Enter, оскільки весь вихід буде доступний у списку швидких виправлень. Ви можете придушити це через :silent, напр :silent make.
Загальна спеціальна команда для безшумного виготовлення:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
список виправлень
Після запуску :makeсписку швидких виправлень буде проведено вихід компілятора.
За допомогою наступної команди перейдіть до списку швидких виправлень.
:copen щоб відкрити вікно швидкого виправлення
:cclose щоб закрити вікно швидкого виправлення
:cnext/ :cprevдля переходу до наступного / попереднього пункту
:ccроздрукувати внизу поточну помилку або :cc 3показати конкретну помилку в цьому прикладі 3
Особисто я використовую безперешкодний плагін Тіма Попа для навігації по списку швидких виправлень.
А що робити :makeавтоматично і безшумно?
Ви можете це зробити так :autocmdсамо, як і ви, де.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
Як бонус я додав у відкритті вікна швидкого :cwindowвиправлення через наявність будь-яких помилок.
Примітка. Має бути більш конкретним із тим шаблоном файлу на BufWritePostautocmd, щоб не пов'язані файли, що не пов'язані.
Там ще більше ?!
Для переконання використовується лише декілька вбудованих команд Vim плюс кілька autocmd. Звичайно, є плагіни та інструменти, які можуть вам допомогти
- Dispatch.vim можна використовувати для
:makeасинхронного виконання завдань.
- Синтаксичний синтаксис плагіну перевіряє файл після
:write.
- Ale.vim (Asynchronous Lint Engine) - плагін для забезпечення зв’язок у NeoVim та Vim 8 під час редагування текстових файлів.
- Unimpaired.vim полегшує керування списком швидких виправлень .
- Прості старі макіяжі. Якщо ваш склад
./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