Установите «makeprg» через моделин в Vim - PullRequest
2 голосов
/ 28 июля 2010

По умолчанию для makeprg установлено значение make. Однако у меня есть много проектов, в которых разные конфигурации и цели сборки находятся в одном каталоге.

Это, конечно, требует указания цели при вызове make.

Например, у меня есть проект, который настроен на создание исходного файла <foo>.cpp путем вызова make foo, и проект содержит несколько таких исходных файлов.

Как я могу добиться того, чтобы при редактировании в 101 Vim <foo>.cpp было установлено значение makeprg, равное make <foo>? Я думал о моделях в каждом файле, но устанавливал makeprg через Моделин запрещен (из соображений безопасности?).

Обратите внимание, что этот параметр подходит только для некоторых проектов, поэтому я не хочу изменять общее значение make - в противном случае я просто

set makeprg=make\ expand("%:t:r")

(или что-то в этом роде) в моем .gvimrc.

Ответы [ 3 ]

4 голосов
/ 28 июля 2010

Я использую мой плагин , который позволяет настраивать параметры для конкретных проектов.Таким образом, мой .vimrc не загроможден специфическими для проекта вещами.Вместо этого в каждом корневом каталоге проекта у меня есть файл _vimrc_local.vim, содержащий мои различные настройки.

Другим решением будет инкапсуляция вызова :make в другую команду или отображение, которое в свою очередь вызывает :makeс переменной, которую вы могли бы установить с помощью другого плагина: let-modeline .

PS: .gvimrc должен содержать вещи, специфичные для графической версии vim.При установке ваших настроек в .gvimrc обычный vim не будет настроен.

1 голос
/ 28 июля 2010

Вы должны быть в состоянии нанести на карту :make %<, что, я считаю, сделает то, что вы хотите

0 голосов
/ 30 июля 2010

Возможно, что-то похожее с автокомандами, если вы можете отличить ваш проект не по моделям, а по их папкам.Ниже приведена комбинация примера из :help autocmd-patterns и вашего примера кода.

:autocmd BufRead /source/foo-project/*.cpp set makeprg=make\ expand("%:t:r")

(Обратите внимание, что я не проверял эту точную команду, вместо этого у меня есть некоторые автокоманды для установки makeprg в зависимости от типа файлав моем vimrc)

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