компилировать прямо из vim - PullRequest
14 голосов
/ 12 февраля 2009

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

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

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

Ответы [ 6 ]

10 голосов
/ 12 февраля 2009

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

set makeprg=gmake\ %:r.o

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

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

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

make -n <my_file>.o

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

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

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

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

НТН.

ура

6 голосов
/ 13 февраля 2009

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

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

5 голосов
/ 12 февраля 2009

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

2 голосов
/ 27 февраля 2015

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

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

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

2 голосов
/ 19 октября 2010

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

0 голосов
/ 13 февраля 2009

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

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

:help system

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

:com Mymake call system("g++ ".expand("%"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...