2012-03-30 2 views
3

Я хочу, чтобы команда :make выполнялась нормально, если есть Makefile. В противном случае я хочу, чтобы он выполнял собственный скрипт, например, compile. Если ни один файл не присутствует, я бы хотел, чтобы он потерпел неудачу изящно (в идеале не покидать экран редактирования).Установите vimrc makeprg на собственный скрипт, если нет Makefile

Я знаю this thread, в котором представлено выражение bash, которое я смог адаптировать в соответствии с моими потребностями. ЗА ИСКЛЮЧЕНИЕМ Мне иногда нужно запустить оболочку, отличную от bash. Есть ли независимый от оболочки способ сделать это?

+0

Вышеупомянутое выражение bash может выглядеть так для сценариев gnuplot. В .vim/after/ftplugin/gnuplot.vim: '' 'setlocal makeprg = ([[\ -f \ Makefile \]] \ && \ (make \ $ *; \ true) \\\ | \\\ | \ gnuplot \ -persist \% \ $ *) '' ' – Hotschke

ответ

1

makeprg может быть установлен на имя любого исполняемого файла. Создайте сценарий оболочки, который запускает make, если есть Makefile, в противном случае выполняется compile, или же вернется.

+1

Цель состоит в том, чтобы сделать это в vimrc, поэтому мне не нужно делать такой файл для каждого проекта. – mgold

+0

В этом случае вы можете просто изменить значение параметра 'shell' в сочетании со значением параметра' makeprg'? – chepner

+0

А, я пытался избежать этого. Но достаточно уверен: set shell =/bin/bash' сделал трюк, поэтому я поеду с ним. – mgold

Смежные вопросы