Rのhistoryを一箇所にしてみたいとおもったけど ESS からだとうまくいかないよう‥

~/.Renviron を以下のようにつくる。

R_HISTFILE=~/.Rhistory
R_HISTSIZE=10000

~/.Rprofile に

# Things put here are done first.
.First <- function(){
  utils::loadhistory(Sys.getenv("R_HISTFILE"))
  cat("\n   Welcome to R!")
  cat("\n  " , paste(date()), "\n\n" )
  cat("\n  " , "You are in", paste(getwd()), "\n\n" )
}

# Things put here are done last.
.Last <- function(){
  utils::savehistory(Sys.getenv("R_HISTFILE"))
  graphics.off()
  cat("\n\n  .Rhistory has been saved on " ,paste(date()))
  cat("\n\n  Goodbye!\n\n")
}

R_HISTFILEはデフォルトだと".Rhistory"なので、起動したディレクトリに作られる。これだと違う場所で行った操作が呼び出せない。
上の2行で、zsh のように便利にならないものかと思っていたのだけど‥。


普通に Terminal から直接 R を呼んだりする場合は問題なさそうだが、ESS はhistory の扱いがどうも違う。iESS は ESS から飛ばされてきた命令を記録してなさそうだし。残念。