Description: | Although not perl code, this has sped up my development in perl markedly. Stole (and altered) this off a friend of mine who found it and altered it somewhere else. For those who are that way inclined, you can also do similar things with php. Simple instruction: F1 validates the per... checking for syntax errors etc etc, and brings up the results in a new window. f2 closes the window. f3 runs the perl script, bringing up the results in a new window. (again) f2 closes the window. Generally, I use this for debugging. Improvements and suggestions welcomed. |
" F2 close current window (commonly used with my F1/F3 functions) noremap <f2> <Esc>:close<CR><Esc> " perl -cw buffer, using a temp file, into a new window function! PerlCW() let l:tmpfile1 = tempname() let l:tmpfile2 = tempname() execute "normal:w!" . l:tmpfile1 . "\<CR>" execute "normal:! perl -cw ".l:tmpfile1." \> ".l:tmpfile2." 2\>\&1 + \<CR>" execute "normal:new\<CR>" execute "normal:edit " . l:tmpfile2 . "\<CR>" endfunction " perl buffer, using a temp file, into a new window function! PerlOutput() let l:tmpfile1 = tempname() let l:tmpfile2 = tempname() execute "normal:w!" . l:tmpfile1 . "\<CR>" execute "normal:! perl ".l:tmpfile1." \> ".l:tmpfile2." 2\>\&1 \<C +R>" execute "normal:new\<CR>" execute "normal:edit " . l:tmpfile2 . "\<CR>" endfunction " Settings for editing perl source (plus bind the above two functions) function! MyPerlSettings() if !did_filetype() set filetype=perl endif set textwidth=78 set expandtab set tabstop=4 set shiftwidth=4 set cindent set comments=:# set formatoptions=croql set keywordprg=man\ -S\ 3 noremap <f1> <Esc>:call PerlCW()<CR><Esc> noremap <f3> <Esc>:call PerlOutput()<CR><Esc> endfunction if has("eval") augroup SetEditOpts au! autocmd FileType perl :call MyPerlSettings() augroup END endif endif