2010-09-11 204 views
11

我已经在Windows上使用了Stata和gVim了一段时间了。最近我已经切换到Linux,我打算也从Stata变成R.在Vim的缓冲区中运行R

我的一个朋友正在使用R和Emacs ESS,这看起来很完美,但是我宁愿继续使用vim。我已经安装了vim-r-plugin2,但是,我只能将代码发送到运行R的单独终端。我宁愿将我的屏幕分成一个缓冲区,运行R和一个缓冲区,使用我的.R文件,然后发送代码一个到另一个。 Emacs中的ESS似乎可以工作,您可以在缓冲区中运行终端/ R,而不会出现问题。我还没有找到一种方法来完成这项工作。 Vim的R插件使用屏幕,并且打开一个运行shell的缓冲区的唯一方法就是Conque Shell插件。

我知道,不像Emacs,Vim被设计成一个简单的文本编辑器。然而,让R在缓冲区运行似乎更加实用。

我希望我的问题可以理解,请耐心等待我最近才转向Linux,除了统计之外几乎不了解编程。谢谢!

+0

我在OSX和Ubuntu中都使用Vim和vim-r-plugin2,并且用相同的方法来摔跤,但是现在我对Vim编辑和执行终端非常满意。在终端中,我真正需要的是制表符完成,这就是我认为Vim有点短的地方。 – 2010-09-12 04:48:47

+0

我曾经在gedit + rgedit中做过所有事情,但我知道切换到更强大的GUI是值得的。我使用Eclipse,它在功能上与ESS非常相似。 – 2010-09-13 07:58:50

回答

4

如果你不需要输入unicode,你可以考虑使用ConqueShell plugin

+0

我了解ConqueShell插件。但是,如何让vim-r-plugin使用它? – ilprincipe 2010-09-12 09:30:09

+1

@ilprincipe无法使用ConqueShell开箱即用,但您可以尝试使用此插件的分支:http://github.com/ZyX-I/vim-r-plugin2:它添加了初始的ConqueShell支持,为了使用它,在你的vimrc中设置'g:vimrplugin_conqueplugin'。也许这个改变会在稍后被作者拉下。 – ZyX 2010-09-12 14:26:51

+0

ive试过你的解决方案,它的工作部分,一些键绑定不工作,因为conqueshell只能发送选择到一个shell,而不是字符串。我在这里与作者分享了你的文件:http://ubuntuforums.org/showthread.php?p=9836800#post9836800 – ilprincipe 2010-09-12 18:34:57

0

另一种选择,并原谅我指点你回到EMACS,

毒蛇模式

http://www.informatik.uni-hamburg.de/RZ/software/emacs/viper/viper_3.html

这是一个emacs模式,使EMACS感觉更像是Vim的,同时也让您完全访问如果你想要它,那么EMACS的精彩,令人难以置信的复杂性。

+3

谢谢,我知道viper模式,但是如果我使用emacs,我使用emacs而不是混合。不过,我宁愿继续使用vim。 – ilprincipe 2010-09-13 16:32:27

2

与此同时,'邪恶'(可扩展vi模拟层)模式已经成熟。这是一个在Emacs中运行的vim模拟器,对我来说工作得很好。