在R中访问/操纵历史堆栈(向上/向下箭头)

时间:2014-12-17 05:53:26

标签: r shell console stdin

我在R中使用一个类似于交互式shell的工具,它使用readline来提示stdin,如下所示:

console <- function(){
  while(nchar(input <- readline(">>> "))) {
    message("You typed: ", input)
  }
}

它有效,但唯一困扰我的是以这种方式输入的行不会被推到历史堆栈上。按R中的向上箭头可显示在启动控制台之前输入的最后一个R命令。

有没有办法在历史堆栈上手动推送input行,按下向上箭头会显示在控制台功能中输入的最新行?

1 个答案:

答案 0 :(得分:1)

我在rite中使用它来向命令历史添加命令。实质上,您可以从本地文件中savehistoryloadhistory。我这样做:

tmphistory <- tempfile()
savehistory(tmphistory)
histcon <- file(tmphistory, open="a")
writeLines(code, histcon)
close(histcon)
loadhistory(tmphistory)
unlink(tmphistory)

注意:Mac doesn't use history in the same way as other OS's,所以要小心。