博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神操作:如何将Vim变成一个R语言IDE
阅读量:6344 次
发布时间:2019-06-22

本文共 2570 字,大约阅读时间需要 8 分钟。

首先说明,本文不适合R语言初学者阅读、模仿和使用,如果是初学者,那么RStudio可能是更适合也更完美的工具。如果你在工作生活中遇到Vim / Emacsland,那么本文可能会给你解惑不少。

为什么不直接使用RStudio呢?

神操作:如何将Vim变成一个R语言IDE

这是一个很棒的问题,站在我的角度来说,主要的原因速度和熟悉度。虽然RStudio也有Vim键绑定,但是我实在是用不惯,我已经被Vim毁了!

R In Vim

首先,在Vim中寻求R语言支持就是很残酷的,不仅选择少,而且支持也很少!所以你最好的选择是使用一个单独的: :terminal buffer,其基本工作流程如下:

  • 在myFile.R编写代码

  • 可视化选择代码

  • 粘贴代码到: terminal buffer

  • 执行代码

  • 清洗和重复

这种方法虽然看起来不算太繁琐,但是时间一长,难免觉得单调乏味。除此之外,这种方法还有很多不足之处,主要集中在查看定义内容,查看数据,以及一些基本的 completion + linting。

救世主Nvim-R

Nvim - R是我最喜欢的Vim插件之一,它有很多宝藏值得我们挖掘,毫不夸张的说,它能够把一把旧水枪变成了一个功能齐全的机关枪。

首先第一步,安装Nvim-R。我用的是vim - plug,你可以使用任何插件管理器轻松安装它。

Plug 'jalvesaq/Nvim-R'

然后打开R文件并点击\ rf,你会看到terminal buffer 出现在与你当前会话绑定的R控制台,点击\ rq。

神操作:如何将Vim变成一个R语言IDE

R file + R console

值得注意的一点是,控制台并没有绑定到当前缓冲区。这意味着您可以将多个缓冲区都输入到同一个控制台。想要更深入地了解R和Vim在nvim - R中的通信方式请点击:https://github.com/jalvesaq/Nvim-R

秘密武器

既然已经掌握了基本的知识,我们就可以深入研究Nvim – R中所提供的一切。下面这个链接中包含了大量的内置快捷键,希望能够对你有所帮助:https://github.com/jalvesaq/Nvim-R/blob/master/doc/Nvim-R.txt

发送:

Nvim - r中有很多方法可以发送代码行:

Send :: Entire File \aa

Send :: Entire Block \bb

Send :: Entire Function \ff

Send :: Entire Selection \ss

Send :: Entire Line \l

神操作:如何将Vim变成一个R语言IDE

以上是我把基本操作映射到键盘上的代码,这样做法可以节约很多时间。

Object Browser

首先,Object Browser通过键入\ ro请求的特性,查看在当前环境中哪些变量和库是活跃的。还可以通过键入\ rl查看对象,该函数将在当前的控制台中运行ls()函数。

Documentation

为了更好地理解代码,你可以选择以下操作:在Nvim - R中有两个特别的注释\ rh - help和\ re - example。

除此之外,还有另一个选择就是Dash插件。最简单的使用方法如下:

神操作:如何将Vim变成一个R语言IDE

现在,当你想要在R代码或任何其他语言中寻找更多信息的时候,就把鼠标放在单词上,然后点击<leader>d,Dash APP会弹出相关信息。对于在Vim中使用多种语言的使用者来说,Dash是很实用的工具。

查看数据

接下来,就是查看数据了。RStudio自带了一个漂亮的数据查看器,可以方便地获取数据。这在Vim中有点困难,但也并非不可能。

Nvim - R允许用户使用\ rv命令查看数据帧,它会在Mac上使用X Quartz显示数据帧,或者是通过Vim的CSV插件来显示。CSV插件附带了一大堆用于操作数据的额外特性,不过,我个人建议使用Excel。

其他的提示和技巧

不管你能力如何,下面这些小技巧你一定可以用得上:

Inline Code Output

如果有一行代码,你按下\ o,您将看到在当前文件中显示为输出。

函数

代替传统的str() + plot(),Nvim-R有更简单的方法:

summary() :: \rs

plot() :: \rg

args() :: \ra

setwd() :: \rd

print() :: \rp

names() :: \rn

Arrows

Arrows是一种很痛苦的类型。幸运的是,Nvim - R可以更容易从-映射到< -。

completion

通常情况下,我认为缺乏代码自动完成是人们跳过Vim的主要原因。但这个观点是错误的。

Nvim-R completion

Nvim - R支持代码completion。用户必须手动使用< c - x >< c - o >作为对象名称,或< c - x >< c - a >作为函数参数。对于一些人来说,这个工作流是理想的,但是在VS Code这样的智能感知选择的对比下,就显得很笨拙。

Ncm-R

Ncm - R是最佳选择,它虽然是一个很新的包,但是很受欢迎,它与Nvim - R集成,以通过nvim - comple- manager为R提供异步completion。

Ncm - R为所有人提供了丰富的completion:

  • 来自全局R环境的对象;

  • 来自所有加载包的函数;

  • 包内部的library() 和require();

  • 数据集内data();

  • 函数内的参数;

  • 变量内部pipes %>% 和 ggplots +;

对于基本设置,请将下面的代码添加到Vim配置文件中。

神操作:如何将Vim变成一个R语言IDE

R Language Server

如果你还不熟悉语言服务器的作用,那么可以查看下面这个链接:。

R Language Server还处于早期阶段,基本上是实验性的。

Linting

建立linting很简单,如果你是使用异步Lint引擎ALE作为驱动程序。你可以在.vimrc中做如下设置:

Plug 'w0rp/ale'

然后安装lintr:

install.packages('lintr')

进行到这一步,你基本就是完成了将Vim设置成为R语言IDE的工作,希望本文能够对你有所帮助。如果有任何想法,欢迎在下面留言评论。

转载地址:http://yrcla.baihongyu.com/

你可能感兴趣的文章
SQL Server 迁移数据到MySQL
查看>>
通用数据压缩算法简介
查看>>
The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
查看>>
(笔记)找工作,该怎么进补
查看>>
div的显示和隐藏以及点击图标的更改
查看>>
(轉貼) Ubuntu將在ARM平台netbook上現身 (SOC) (News) (Linux) (Ubuntu)
查看>>
SQL注入测试工具:Pangolin(穿山甲)
查看>>
在html 的img属性里只显示图片的部分区域(矩形,给出开始点和结束点),其他部份不显示,也不要拉伸...
查看>>
程序员第二定律:量化管理在程序员身上永无可能
查看>>
ubuntu一些脚本的执行顺序
查看>>
类继承的结构
查看>>
Intel 被 ARM 逼急了
查看>>
testng + reportng 测试结果邮件发送
查看>>
神操作:如何将Vim变成一个R语言IDE
查看>>
百度亮相iDASH,推动隐私保护在人类基因组分析领域的应用
查看>>
民航局:春运期间10个大型机场将延长国内航班运行时间
查看>>
比特币暴涨拉升至1w美元以上,说比特币崩盘的专家要失望了
查看>>
Python「八宗罪」
查看>>
你的隐私还安全吗?社交网络中浏览历史的去匿名化
查看>>
NeurIPS 2018|如何用循环关系网络解决数独类关系推理任务?
查看>>