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

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

au FileType C set makeprg = gcc\%
au FileType Cpp set makeprg = g++ \%

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

Ответы

Ответ 1

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

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

Ответ 2

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

set makeprg=gmake\ %:r.o

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

  • a (M | m) akefile в каталоге или
  • по умолчанию правила SUFFIX доступны для вашей среды (что похоже на отсутствие)

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

make -n <my_file>.o

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

Если в другом месте есть make файл, вы можете добавить опцию -f, чтобы указать на make файл, например:

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

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

НТН.

веселит

Ответ 3

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

Ответ 5

Это можно легко достичь с помощью карт ключей.

Сначала откройте файл 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

Надеюсь, что это поможет.

Ответ 6

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

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

:help system

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

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