R命令历史:如何配置向上箭头将“多线,支撑封闭输入”视为一条线?

时间:2013-04-25 23:09:28

标签: r navigation console readline libreadline

这个问题是关于在导航命令历史记录时将R控制台配置为像bash shell一样。它与?history有些相关。对于括号封闭的多行,我想将R的命令历史导航配置为类似于bash。

目前,在Linux下在xterm中运行R时,使用向上箭头导航命令历史记录会导致每个前一行被逐一调用,即使一组行已用大括号括起来。例如,当将多行函数从文本编辑器复制/粘贴到R控制台时,会发生这种情况。 bash不是这样。  以下是bash如何在这方面发挥作用的示例:

在Linux下的xterm中的bash shell中,键入以下五行后......

a=1 
{
x=1
y=1
}

......第一次按下向上箭头会回想起支架封闭命令的单行重新制定,就像这样......

{ x=1; y=1; }

......第二次出版会回忆起这个......

a=1

似乎在R中,向上箭头一次向后导航一行,无论封装如何。有没有办法配置R,以便它的命令历史导航功能像bash的?

2 个答案:

答案 0 :(得分:1)

您可以使用rlwrap。我将它用于其他控制台程序,它运行良好。您需要在R命令前加上rlwrap二进制文件,然后可以通过多种方式恢复历史记录行,包括多行匹配。

答案 1 :(得分:1)

适用于Linux / Unix的解决方法

与Rstudio类似(感谢 Ari B. Friedman 评论),R控制台中的用户使用 Shift Enter 来绕过RETURN ,您可以使用 Ctrl-V Ctrl-J 启动新行(在R终端中)而不接受换行命令。这样,多行命令将被接受为历史记录,作为带有换行符而不是输入的单行,您甚至有机会编辑它。您甚至可以在.inputrc文件中管理此操作的自定义组合。

我认为R的直接重新配置是不可能的。

Readline man page may help more.