Vim Tips Wiki

Make-compile current buffer

1,610pages on
this wiki
Revision as of 16:22, September 18, 2010 by (Talk)

Tip 210 Printable Monobook Previous Next

created 2002 · complexity basic · author elian · version 6.0

This tip shows techniques to compile or to run make for the file in the current buffer. This is useful to list any compile errors in the quickfix window.

Compile with gcc

If you use

set makeprg=gcc\ -o\ %<\ %

in your vimrc, and your actual file is file.c, then :make will compile file.c with the output file. (gcc file.c -o file).

If you use GNU make the above change is not required. Instead, simply use the following command to compile the current file (you need to save it first):

:make %:r

When using other compilers, like Sun cc, you can adapt the tip to suit your compiler.

Invoking make

The following allows you to press F7 (in normal mode) to invoke make to compile the file in the current buffer. If modified, the file is first saved.

" Save and make current file.o
function! Make()
  let curr_dir = expand('%:h')
  if curr_dir == ''
    let curr_dir = '.'
  echo curr_dir
  execute 'lcd ' . curr_dir
  execute 'make %:r.o'
  execute 'lcd -'
nnoremap <F7> :update<CR>:call Make()<CR>



  • I've done a pretty quick clean up. Would someone please reply here with news about whether it actually works (after testing).
  • Need some explanation, including note about (deprecated) %<. JohnBeckett 04:49, 14 July 2009 (UTC)
Advertisement | Your ad here

Around Wikia's network

Random Wiki