SyntaxHighlighter

Tuesday 4 January 2011

Настройка vim для компиляции небольших программ

Часто требуется написать небольшую программу на одном из языков программирования (C/C++, Java, Python и т.д.). Для с++ последовательность действий выглядить примерно так:
vim solve.cpp
....
:wq
g++ -o solve solve.cpp
./solve <> output.txt
vim solve.cpp
....

Для удобства можно все эти действия выполнять в пределах одной сессии vim. Я разделил экран на три части. В левой половине показывается программа, в верхней части правой половины находится содержимое входного файла программ, в нижней части содержимое выходного файла или сообщения об ошибках, в зависимости от результата компиляции программы (файлы называются input.txt и output.txt соответcтвенно). Назначим клавише F9 компиляцию и исполнение программы в случае удачной компиляции. Для всего этого в файл .vimrc надо добавить следующие инструкции:

function CompileAndRun()
w
!del solve.exe
!cl solve.cpp <> output.txt
" if findfile("solve.exe") == 'solve.exe'
if filereadable('solve.exe')
!solve <> output.txt
endif
endfunction

function PrepareCpp()
set autoread
set nocindent
set autoindent
map :call CompileAndRun()
imap :call CompileAndRun()
imap { {}
set splitright
set splitbelow
vsplit input.txt
w
split output.txt
w
endfunction

au FileType cpp call PrepareCpp()