21

这个问题是关于将 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 一样的命令历史导航功能?

4

2 回答 2

1

Linux/Unix 的解决方法

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

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

Readline 手册页可能会有所帮助。

于 2015-02-21T17:50:28.780 回答
1

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

于 2013-05-18T14:29:04.703 回答