if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'r-lang') == -1 " ftplugin for R files " " Author: Iago Mosqueira " Author: Johannes Ranke " Author: Fernando Henrique Ferraz Pereira da Rosa " Maintainer: Johannes Ranke " Last Change: 2007 Nov 21 " SVN: $Id: r.vim 75 2007-11-21 13:34:02Z ranke $ " " Code written in vim is sent to R through a perl pipe " [funnel.pl, by Larry Clapp ], as individual lines, " blocks, or the whole file. " Press to open a new xterm with a new R interpreter listening " to its standard input (you can type R commands into the xterm) " as well as to code pasted from within vim. " " After selecting a visual block, 'r' sends it to the R interpreter " " In insert mode, sends the active line to R and moves to the next " line (write and process mode). " " Maps: " Start a listening R interpreter in new xterm " Start a listening R-devel interpreter in new xterm " Start a listening R --vanilla interpreter in new xterm " Run current file " Run line under cursor " r Run visual block " Write and process " Only do this when not yet done for this buffer if exists("b:did_ftplugin") finish endif " Don't load another plugin for this buffer let b:did_ftplugin = 1 " Disable backup for .r-pipe setl backupskip=.*pipe " Set tabstop so it is compatible with the emacs edited code. Personally, I " prefer shiftwidth=2, which I have in my .vimrc anyway set expandtab set shiftwidth=4 set tabstop=8 " Start a listening R interpreter in new xterm noremap :!xterm -T 'R' -e funnel.pl ~/.r-pipe "R && echo -e 'Interpreter has finished. Exiting. Goodbye.\n'"& " Start a listening R-devel interpreter in new xterm noremap :!xterm -T 'R' -e funnel.pl ~/.r-pipe "R-devel && echo 'Interpreter has finished. Exiting. Goodbye.'"& " Start a listening R --vanilla interpreter in new xterm noremap :!xterm -T 'R' -e funnel.pl ~/.r-pipe "R -vanilla && echo 'Interpreter has finished. Exiting. Goodbye.'"& " Send line under cursor to R noremap :execute line(".") 'w >> ~/.r-pipe' inoremap :execute line(".") 'w >> ~/.r-pipe' " Send visual selected block to R vnoremap r :w >> ~/.r-pipe " Write and process mode (somehow mapping does not work) inoremap :execute line(".") 'w >> ~/.r-pipe'o " Send current file to R noremap :execute '1 ,' line("$") 'w >> ~/.r-pipe' endif