From b3257271dbd3075507db3e8ad2e76571901c969d Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Mon, 30 Sep 2013 12:04:53 +0200 Subject: Add R language support --- ftplugin/r.vim | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 ftplugin/r.vim (limited to 'ftplugin/r.vim') diff --git a/ftplugin/r.vim b/ftplugin/r.vim new file mode 100644 index 00000000..a3d4da3c --- /dev/null +++ b/ftplugin/r.vim @@ -0,0 +1,69 @@ +" 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' -- cgit v1.2.3