Как запустить make в vim и открыть результаты в разделенном окне? - PullRequest
32 голосов
/ 01 июля 2011

Я использую vim для кодирования.Когда мне нужно скомпилировать текущий файл, я использую :!g++ % && ./a.out или :make.Отображаемые ошибки / вывод исчезают, когда я нажимаю клавишу ввода и возвращаюсь к файлу.Я хотел бы, чтобы ошибки и выходные данные отображались в вертикальном разрезе сбоку.Было бы хорошо, если потоки вывода и ошибок находятся в отдельных буферах.Как это может быть сделано?Ошибки и выходные буферы должны обновляться при повторной компиляции, и это не должно создавать новые буферы.Как это сделать?какой-нибудь плагин / функция vim?или вкладыш: P?

Ответы [ 2 ]

45 голосов
/ 01 июля 2011

пользователь:

:make | copen

См. http://vimdoc.sourceforge.net/htmldoc/quickfix.html#quickfix-window

0 голосов
/ 11 июля 2011

Если вы хотите скомпилировать и запустить, если компиляция прошла успешно. (т.е. !g++ % && ./a.out)

Создайте скрипт оболочки со следующей строкой,

g++ $1 -o /tmp/a.out && /tmp/a.out

Теперь установите makeprg следующим образом. set makeprg=compileNrun.sh\ %

Невозможно установить всю команду напрямую как makeprg из-за &&. Если задано непосредственно в makeprg, приведенная выше команда будет расширена до

!g++ file.C -o /tmp/a.out && /tmp/a.out 2>&1 | tee /tmp/errorFile

Следовательно, ошибки компиляции не будут перенаправлены в файл ошибок, если компиляция не удалась; P как && имеет приоритет над |

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