компилировать непосредственно из vim

Я хотел бы скомпилировать cpp-файл без выключения vi.
Я знаю :!файл g++.cpp но я предпочитаю : make поэтому я добавил эту строку .файл vimrc

au FileType c set makeprg=gcc %
тип файла au Cpp set makeprg=g++ %

но я продолжаю получать
"make: * * * * * не указаны цели и не найден файл makefile. Остановка.** "сообщение.
кто-нибудь может сказать мне, что не так с моими настройками?
Я использую для успешной компиляции с помощью опции выше.

6 ответов


вам нужна замена есть, попробуйте что-то вроде:

set makeprg=gmake\ %:r.o

О, это предполагает, что у вас есть:

  1. A (M|m)akefile в каталоге или
  2. правила суффикса по умолчанию доступны для вашей среды (которой, похоже, нет)

проверьте значение по умолчанию, введя:

make -n <my_file>.o

и посмотрим, даст ли это вам что-то разумное.

Если есть Makefile в другом месте, вы можете добавить опция-f для указания на makefile, например:

set makeprg=gmake\ -f\ ../some_other_dir/makefile\ %:r.o

кстати для изучения make, и особенно gmake, я бы предложил взглянуть на отличную книгу "Управление проектами с GNU Make" (санированная ссылка Amazon).

HTH.

ура


Я должен изменить C, Cpp на c, cpp, тогда он работает нормально.

спасибо всем, особенно Роб Уэллс, ваш ответ очень помог мне. спасибо.


Я думаю, что это намного проще, если вы напишете файл Makefile и поместите его туда, где vi может его найти. Я не уверен, что вы действительно используете vi (я использовал только Vim), но когда есть компиляция Makefile должна быть такой же простой, как написание : make (не требуется набор makeprg).


Я рекомендую плагин vim под названием SingleCompile вместо того, что вы сделали: http://www.vim.org/scripts/script.php?script_id=3115


Это может быть легко достигнуто с помощью ключевых карт.

Сначала откройте файл vimrc и эти строки в файл,

autocmd filetype cpp nnoremap <F4> :!g++ % -ggdb -o %:r <CR>
autocmd filetype cpp nnoremap<F5> :!g++ % -ggdb -o %:r && ./%:r <CR>

первая строка отображает ключ F4 в компиляции файла. Вторая строка отображает ключ F5 в скомпилировать и запустить.

Если вы часто используете gdb, это также может пригодиться.

autocmd filetype cpp nnoremap<F10> :!g++ % -ggdb -o %:r && gdb -tui %:r <CR>

эта строка отображает ключ F10 в скомпилировать и запустить gdb

Надежда эта помощь.


прежде всего, просто сделайте кровавый файл make. Каждый инструмент там ожидает работы с make, и если ваши компиляции так просты, требуется около 30 секунд, чтобы написать файл make, который компилирует все файлы c и cpp в исполняемый файл.

во-вторых, если вы отказываетесь использовать файл make, попробуйте

:help system

Это должно дать вам достаточно информации, чтобы придумать свою собственную команду

:com Mymake call system("g++ ".expand("%"))