按Ctrl + D退出R repl时调用了什么函数(如果有的话)?我在几个问题中看到过,例如:
如何禁用"保存工作区图像?" 在R中提示?
专家R用户,你的.Rprofile中有什么?
代码让我相信它正在调用函数q
或quit
.
我想覆盖的原因是让烦恼:
保存工作区图像?[Y/N/C]:
退出时提示消失.但是,重写功能.Rprofile
如:
quit <- function(...) { print(1) }
并且类似地q
没有工作 - 即按Ctrl-D实际上没有打印数字1,直接进入提示.
上述链接中提供的解决方案似乎不起作用.R版使用:
R version 2.15.2 (2012-10-26) -- "Trick or Treat" Copyright (C) 2012 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit)
Scott Ritchi.. 5
Ctrl-D
不调用任何函数,它是特殊的键盘中断.
尝试按Ctrl-D
,然后回答c
取消.如果你按向上箭头来获取最后一个命令,你会发现它不在那里.
要覆盖讨厌的问题Save workspace image? [y/n/c]:
,请参阅此问题的答案:
总结一下,你有三个选择:
打电话R --no-save
代替R
,
在交互式R会话中加载以下内容(不起作用.Rprofile
):
require(Defaults) setDefaults(q, save="no") useDefaults(q)
或者将以下内容放入您的.Rprofile
:
# Set hook to be run when Defaults is attached setHook(packageEvent("Defaults", "attach"), function(...) { setDefaults(q, save="no"); useDefaults(q) }) # add Defaults to the default packages loaded on startup old <- getOption("defaultPackages"); options(defaultPackages = c(old, "Defaults"))
编辑:
这是我能想到的另一个黑客,因为上面的内容对你的情况没有用.这不是一个R解决方案,但可能会做到这一点?
首先,将您的R
可执行文件(为了本示例的目的,我假设它已经存在/usr/bin/
)移动到一个新文件,例如:
sudo mv /usr/bin/R /usr/bin/Rold
现在设置一个新的bash脚本/usr/bin/R
:
#!/bin/bash /usr/bin/Rold --no-save "$@"
并且chmod
它有正确的权限.