Подтвердить что ты не робот

Как запустить make в vim и открыть результаты в разделенном окне?

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

4b9b3361

Ответ 2

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

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

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 как && имеет приоритет над |