Тихое выполнение в vim / gvim - PullRequest
1 голос
/ 10 марта 2010

Я хочу использовать gvim для запуска make и сборки для моего кода. Поскольку процесс сборки занимает некоторое время, я хочу, чтобы он выполнялся без вывода сообщений, а затем в конце мне показывался журнал ошибок / сборки.

Я добавил это в свой .vimrc

:command -nargs=* Make silent make <args>  | cwindow 10
map <c-b> <c-o>:Make<cr>

Итак, когда я нажимаю Ctrl-b, он начинает строить. Но когда я это делаю, мой gvim зависает, и я ничего не могу сделать некоторое время. Есть ли способ выполнить то, что я пытаюсь сделать.

Так как я использую cwindow 10 в конце make, он запускает окно быстрого исправления. В дополнение к этому я также хочу увидеть журнал сборки. Могу ли я как-то это сделать

1 Ответ

0 голосов
/ 23 февраля 2011

Как я уже говорил в похожих вопросах: посмотрите на мой AsyncCommand плагин. Добавьте скрипт к вашему .vim/plugin, и вы можете построить с :AsyncMake или :AsyncMake target. Ошибки будут открыты в вашем быстром исправлении после завершения make.


Для файла журнала вы можете расширить AsyncMake, чтобы также открыть журнал сборки. Добавьте это в свой vimrc после того, как вы установили asynccommand.vim:

function! AsyncMakeWithLog(target)
    let make_cmd = &makeprg ." ". a:target
    let vim_func = "OnCompleteLoadErrorAndLog"
    call AsyncCommand(make_cmd, vim_func)
endfunction
" Load the output as an error file and load the full build log
function! OnCompleteLoadErrorAndLog(temp_file_name)
    call OnCompleteLoadErrorFile(a:temp_file_name)
    call OnCompleteLoadFile(a:temp_file_name)
endfunction

Однако , в файле журнала и в окне ошибок будет много одинакового текста, поэтому вам не всегда нужны оба. Если ваш инструмент сборки уже записывает свой журнал сборки на диск, я бы посоветовал включить в вывод сборки полный путь к журналу сборки. Таким образом, вы можете набрать gf в пути в окне ошибок, чтобы при необходимости перейти в журнал сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...