VIM: как прописать ключи для GCC?

и другие vi-подобные редакторы

Модератор: /dev/random

Аватара пользователя
ArkanJR
Сообщения: 1122

VIM: как прописать ключи для GCC?

Сообщение ArkanJR »

Каким образом можно прописать в .vimrc ключи для GCC? Например, чтобы при нажатии F5 компиляция программы осуществлялась аналогично

Код: Выделить всё

g++ -O1 proga.cpp
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: VIM: как прописать ключи для GCC?

Сообщение Bizdelnick »

Как-то так: nnoremap <F5> :w<CR>:!g++ -O1 %<CR>
А вообще показали бы, что у Вас там сейчас прописано для F5.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
ArkanJR
Сообщения: 1122

Re: VIM: как прописать ключи для GCC?

Сообщение ArkanJR »

Bizdelnick писал(а):
19.08.2014 18:11
А вообще показали бы, что у Вас там сейчас прописано для F5.

au BufEnter *.cpp set makeprg=g++\ -g\ %\ -o\ %<
au BufEnter *.c set makeprg=gcc\ -g\ %\ -o\ %<
au BufEnter *.py set makeprg=python\ %
au BufEnter *.[rR] set makeprg=Rscript\ %
map <F5> : call CompileGcc()<CR>
func! CompileGcc()
exec "w"
silent make
endfunc
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: VIM: как прописать ключи для GCC?

Сообщение Bizdelnick »

Ну если использовать make, то все опции надо в Makefile прописывать. К vim это уже совсем никакого отношения не имеет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
ArkanJR
Сообщения: 1122

Re: VIM: как прописать ключи для GCC?

Сообщение ArkanJR »

Bizdelnick писал(а):
19.08.2014 18:24
Ну если использовать make, то все опции надо в Makefile прописывать. К vim это уже совсем никакого отношения не имеет.

А если make не использовать?
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5102
ОС: Gentoo

Re: VIM: как прописать ключи для GCC?

Сообщение /dev/random »

ArkanJR писал(а):
19.08.2014 18:21
au BufEnter *.cpp set makeprg=g++\ -g\ %\ -o\ %<
au BufEnter *.c set makeprg=gcc\ -g\ %\ -o\ %<

Ну вот же у вас ключи (в данном случае: -g)
Спасибо сказали:

Аватара пользователя
ArkanJR
Сообщения: 1122

Re: VIM: как прописать ключи для GCC?

Сообщение ArkanJR »

/dev/random писал(а):
19.08.2014 18:27
ArkanJR писал(а):
19.08.2014 18:21
au BufEnter *.cpp set makeprg=g++\ -g\ %\ -o\ %<
au BufEnter *.c set makeprg=gcc\ -g\ %\ -o\ %<

Ну вот же у вас ключи (в данном случае: -g)

Вписал ради интереса ключ -O1:
au BufEnter *.cpp set makeprg=g++\ -g\ %\ -o\ %\ -O1\ %<
После нажатия F5 исчез исходный файл .cpp.
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5102
ОС: Gentoo

Re: VIM: как прописать ключи для GCC?

Сообщение /dev/random »

ArkanJR писал(а):
23.08.2014 08:55
au BufEnter *.cpp set makeprg=g++\ -g\ %\ -o\ %\ -O1\ %<

au BufEnter *.cpp set makeprg=g++\ -g\ %\ -O1\ -o\ %<

% - это имя редактируемого файла, а %< - оно же без расширения. Ключ -o задаёт, под каким именем сохранять откомпилированный файл.
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: VIM: как прописать ключи для GCC?

Сообщение drBatty »

ArkanJR писал(а):
19.08.2014 18:25
А если make не использовать?

вопрос из серии "как закрутить шуруп без отвёртки и шуруповёрта?"

Ну да, можно пассатижами.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

Аватара пользователя
ArkanJR
Сообщения: 1122

Re: VIM: как прописать ключи для GCC?

Сообщение ArkanJR »

Хотелось бы ещё кое-что уточнить, сейчас чтобы выполнить комппиляцию (F5) и запуск программы (F9) приходится переходить из режима редактирования в командный режим. Каким образом можно компилировать и запускать программу через указанные выше клавиши, оставаясь в режиме редактирования?

В данный момент F5 и F9 прописаны в .gvimrc следующим образом:

F5:

Код: Выделить всё

au BufEnter *.cpp set makeprg=g++\ -g\ %\ -O1\ -o\ %<
au BufEnter *.c set makeprg=gcc\ -g\ %\ -o\ %<
au BufEnter *.py set makeprg=python\ %
au BufEnter *.[rR] set makeprg=Rscript\ %
map <F5> :call CompileGcc()<CR>
func! CompileGcc()
    exec "w"
    silent make
endfunc


F9:

Код: Выделить всё

function! BindF9_C()
    if filereadable("Makefile")
        set makeprg=make
        map <F9>      :w<cr>:make<cr>:cw<cr>:!xterm -e './%<; read'<cr>
        imap <F9> <esc>:w<cr>:make<cr>:cw<cr>:!xterm -e './%<; read'<cr>
    else
        map <F9>      :w<cr>:make %:r<cr>:cw<cr>:!xterm -e './%<; read'<cr>
        imap <F9> <esc>:w<cr>:make %:r<cr>:cw<cr>:!xterm -e './%<; read'<cr>
    endif
endfunction
au FileType c,cc,cpp,h,hpp,s call BindF9_C()
— Да, это была ошибка, Кемп, огромная ошибка, что я взялся один за это дело. Напрасно потрачены силы, время, возможности. Один… Удивительно, как беспомощен человек, когда он один! Мелкая кража, потасовка — и всё.

© Г. Уэллс "Человек-невидимка"
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: VIM: как прописать ключи для GCC?

Сообщение Bizdelnick »

Ну вроде как F9 должно работать в режиме вставки. Чтобы заработало F5, надо сделать так же, как для F9: imap с добавлением <Esc> в начало команды.
А вообще - см. :help mapping.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: