SOLVED: Re: [R] help output paged in separate window
Roger Bivand
Roger.Bivand at nhh.no
Tue May 27 11:59:14 CEST 2003
On Tue, 27 May 2003 Ted.Harding at nessie.mcc.ac.uk wrote:
> May I thank everyone who chipped in with suggestions and comments about
> this question.
>
> On one contribution: Robert Espresso suggested how to amend Jim Lemon's
> function 'helpless' so as to put it in the background.
> This works (as far as putting it in the background is concerned).
> However, by experiment I found that Jim's function is limited because
> of the way it looks for what to feed to 'less' and it sometimes succeeds
> but in general will not succeed and so 'less' will get empty input.
> E.g., with Robert's mod of Jim's function, compare the results of
> "?library" (which works) with "?RNGkind" (which doesn't).
>
> However, after a little reflection (which I could have done earlier ... )
> I've found a very straightforward solution for Unix systems, outlined
> below, which allows anything which would have been sent to R's pager to be
> shown on a separate and fully-detached window using 'less'. The details
> shown have been implemented in Linux, but the principles are applicable
> on all Unix and the method should work either exactly as it is or with
> minor modifcations.
>
> 1. Create a file in your $PATH with name "pgr" containg the lines
>
> #! /bin/bash
> export HLPFIL=`mktemp R_hlp.tmp.XXXXXX`
> cat > $HLPFIL
> xterm -e less $HLPFIL &
>
> and make it executable ("chmod 755 pgr"). (You may want to change the
> first line, depending on your shell, or you may well be able to omit it
> altogether). The 'mktemp' function generates a filename which is unique
> within its directory.
>
> 2. Give R the command
>
> options(page="pgr")
>
> where "pgr" can be replaced by a full pathname if required.
>
> That's it: Now try "?library", "help.search("random")", "help(RNGkind)"
> or anything else!
>
> If you use this a lot, you will find it handy to have a method of
> automatically deleting all the "R_hlp.tmp.XXXXXX" files you've created
> in a session.
Or even use R to generate the shell script in a directory from tempdir():
.xthelp <- function() {
tdir <- tempdir()
pgr <- paste(tdir, "/pgr", sep="")
con <- file(pgr, "w")
cat("#! /bin/bash\n", file=con)
cat("export HLPFIL=`mktemp ", tdir, "/R_hlp.XXXXXX`\n", sep="", file=con)
cat("cat > $HLPFIL\nxterm -e less $HLPFIL &\n", file=con)
close(con)
system(paste("chmod 755 ", pgr, sep=""))
options(pager=pgr)
}
.xthelp()
source() this; then the files go away when R quits. This still leaves the
function object in the global environment. The mode can also be 750 or
tighter since execute permissions for other users seem a bit unnecessary?
Roger
>
> Best wishes to all,
> Ted.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>
--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Breiviksveien 40, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93
e-mail: Roger.Bivand at nhh.no
More information about the R-help
mailing list