if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 " Vim filetype plugin file " Language: R " Maintainer: Jakson Alves de Aquino " Homepage: https://github.com/jalvesaq/R-Vim-runtime " Last Change: Tue Apr 07, 2015 04:38PM " 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 let s:cpo_save = &cpo set cpo&vim setlocal iskeyword=@,48-57,_,. setlocal formatoptions-=t setlocal commentstring=#\ %s setlocal comments=:#',:###,:##,:# if has("gui_win32") && !exists("b:browsefilter") let b:browsefilter = "R Source Files (*.R)\t*.R\n" . \ "Files that include R (*.Rnw *.Rd *.Rmd *.Rrst)\t*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . \ "All Files (*.*)\t*.*\n" endif let b:undo_ftplugin = "setl cms< com< fo< isk< | unlet! b:browsefilter" let &cpo = s:cpo_save unlet s:cpo_save endif 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