I am using ESS, but every time I need to install a new package I have to use R gui. Isn't there a way to do this without leaving emacs?
问题:
回答1:
C-c C-e i
It will take a few seconds to load all packages.
回答2:
From help(Startup)
:
## Example of Rprofile.site
local({
# add MASS to the default packages, set a CRAN mirror
old <- getOption("defaultPackages"); r <- getOption("repos")
r["CRAN"] <- "http://my.local.cran"
options(defaultPackages = c(old, "MASS"), repos = r)
## (for Unix terminal users) set the width from COLUMNS if set
cols <- Sys.getenv("COLUMNS")
if(nzchar(cols)) options(width = as.integer(cols))
})
回答3:
http://www.emacswiki.org/emacs/anything-R.el works well for me.
回答4:
If you don't remember the shortcut for package setup, you can go through the Handy commands main menu.
If you type ,
in the inferior R buffer as the first character (i.e. at the process marker), you trigger the handy commands menu in the minibuffer, like in the following figure:
Note how you can interactively select menu items by typing the initial characters (like with Emacs isearch). Of course you can simply use the arrows.
Select install.packages
(typing i
should followed by enter
should be enough).
In the subsequent menu, you are presented with the CRAN mirror list:
Select a convenient mirror. ESS will fetch the available packages
You are then presented with the list of installable packages.
Select the one that you need and you are done.
Note that the second time you install a package in the current session you are not requested to reselect the mirror.
If you are not familiar with ESS handy commands, you might find here many other commands very ... well handy. Particularly, as regards the subject matter here, the library
command might help, because you can enjoy auto-completion, useful also when you need to load a package, but you do not remember its spelling.
You might want to use the standard R GUI dialogues from Emacs. In this case, at least in Windows, to display properly the dialogue boxes, use:
library('tcltk')
install.packages()