2016-10-18 3 views
-1

Я совершенно новичок в vim, установил несколько плагинов, один из которых - SnipMate, , что весьма полезно при написании короткого файла Makefile.Как сгенерировать автоматически Makefile в vim (c/C++) супер быстро?

snippet base 
    PHONY: clean, mrproper 
    CC = gcc 
    CFLAGS = -g -Wall 

    all: $1 

    %.o: %.c  $(CC) $(CFLAGS) -c -o [email protected] $< 

    ${1:OUTPUT_FILENAME}: $1.o 
     $(CC) $(CFLAGS) -o [email protected] $+ 

    clean:  rm -f *.o core.* 

    mrproper: clean   rm -f $1 

, но все еще требуется время, чтобы вручную добавить имена файлов, Я совершенно уверен, что с некоторым Vim Волшебного :), Вьет бы в состоянии сделать это автоматически (исполняющим его с помощью горячей клавиши) после того, как Я написал эти c-файлы, любые предложения?

Спасибо всем!

+0

Вы можете возглавить к ВИМ stackexchange и спросить там, я думаю, для больше шансов на хороший результат. – Hayt

+0

@ Хейт, я должен не согласиться. Существуют совершенно правильные подходы, которые являются 100% gnu-make, если речь идет только о получении нефильтрованного списка каждого файла C в каталоге. Это было бы даже менее громоздким, чем подход Vim, который нужно выполнять каждый раз, когда файл добавляется. –

+0

@LucHermitte да, могут быть подходы gnu-make для этого. Я имел в виду, что люди делают некоторые «vim-magic» вообще, что stackexchange может привести к большему количеству ответов. Никогда не говорил, что это будет не по теме. – Hayt

ответ

2

Вы можете автоматически извлекать имена файлов с помощью glob() и globpath() (не спрашивайте меня о синтаксисе SnipMate для импорта результата - я поддерживаю другой плагин шаблона/фрагмента).

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

BTW, IIRC, правильно настроенный gnumake (то есть, не MinGW один) уже имеет правило %.o: %.c

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