Вопрос по – Можно ли позвонить: сделать в vim в linux без показа оболочки

19

Я пытался поэкспериментировать с использованием:make в последнее время, но мне не нравится, что vim должен сначала переключиться на отображение вывода оболочки и потребовать одно нажатие клавиши ввода, а затем он показывает мне, как мне кажется, список собранных ошибок, основанный на'errorformat' что мне также нужно подтвердить нажатием Enter. Я бы предпочел, чтобы у меня была короткая надпись "ОК" сообщение, которое не требует подтверждения нажатием клавиши, или что vim откроет:cwindow если были какие-либо ошибки.

Ваш вопрос является дубликатомRunning :make from gVim in Background. Luc Hermitte
Этот вопрос, очевидно, касается бегаmake вforeground и сразу перейти к первой найденной ошибкеmake заканчивается, без хлопот и подсказок, которые излишне замедляют развитие. (make часто требуется миллисекунда, чтобы совершить первую ошибку и остановиться. Так зачем запускать его в фоновом режиме?) Tino

Ваш Ответ

3   ответа
12

Я использую следующую строку только для точной цели, которую вы написали:

nnoremap <leader>m :silent make\|redraw!\|cc<CR>

cc в конце показывает первую ошибку илиNo errors сообщение, если это так.

Отличная идея! Тем не менее, я предпочитаю не переноситься автоматически на место первой ошибки, а только показывать окно быстрого исправления в случае ошибок, поэтому я изменил наmake!\|redraw!\|cw<CR>.
1

Пытаться:

:silent make

Чтобы автоматически открыть окно быстрого исправления после запускаmakeВы можете положить это в свой.vimrc:

autocmd QuickFixCmdPost * :copen
Я уже пробовал: silent make, но он просто делает окно vim полностью черным (командная строка vim и laststatus по-прежнему отображаются), поэтому мне нужно вызвать: make, чтобы снова отобразить буфер в окне. Sam
2

Например, можно сопоставить F9, чтобы использовать gcc для небольших фрагментов языка Си, для которых не требуются библиотеки, ссылки и т. Д.

map <F9> :!gcc -o %< % <enter><CR><C-w>

Это произведет для файлаfoo.c двоичный файлfoo, Я знаю, что это не совсем то, что вам нужно, но это не показывает никакой оболочки и полезно для небольшого фрагмента кода.

Похожие вопросы