[ESS] Problem with (setq ess-help-own-frame t) : emacs answers that "ess--switch-to-help-buffer: Window is dedicated to `*help[R](geom_line)*'

Deepayan Sarkar deep@y@n@@@rk@r @end|ng |rom gm@||@com
Mon Jan 26 10:30:27 CET 2015


On Mon, Jan 26, 2015 at 2:44 PM, Emmanuel Charpentier
<emm.charpentier using free.fr> wrote:
> Dear Deepayan, dear list,
>
> On 26/01/2015 07:32, Deepayan Sarkar wrote:
>>
>> On Sun, Jan 25, 2015 at 3:45 PM, Emmanuel Charpentier
>> <emm.charpentier using free.fr> wrote:
>>>
>>> Dear list,
>>>
>>> I wanted to have a different frame for each request to R help. so i used
>>> (setq ess-help-own-frame t) in my .emacs.
>>
>>
>> I think it's important to understand what you want here. Do you mean
>> different frame or different buffer or different window?
>>
>> According to [1], a frame is what the rest of the world calls a
>> window, and a window is what you get by "splitting" a window (e.g.,
>> C-x 2, File => New Window Below).
>>
>> [1] http://www.gnu.org/software/emacs/manual/html_node/emacs/Frames.html
>
> That's what I intended. I am not exactly a newcomer to emacs and spent some
> not inconsiderable time reading its manual about two decades ago. I've
> practised it on about anything from VMS via VT220 (or, of all things, a
> french Minitel...) to Windows to Gnome under Linux. I used the word "frame"
> as defined in emacs manual (e. g. something you can create by C-x 5 2...).
>
>>
>> I think the default behaviour of ESS is to have a different buffer for
>> each help request, which is probably exactly what you want.
>
>
> Indeed.
>
>> The
>> question is, where should it be displayed? ESS seems to use the last
>> help window used if any, and creates a new one if none exists.
>
>
> Yes. My point is that, currently, this does *NOT* work. Let's illustrate the
> situation : I have set ess-help-own-frame to t. I requested help on foo by
> typing "?foo" at the R command loin in the *R* buffer : emacs created a
> frame displaying foo's online help. So far, so good. But now I need help on
> "bar" :
>
> When I request help on bar by typing "?bar" at the R command line, emacs
> does *NOT* display bar's online help anywhere : it beeps and displays
> "Window is dedicated to `*help[R](bar)*'" in the minibuffer of the frame
> displaying foo's online help.
>
> IMNSHO, this is a bug, at least to the extend that this behaviour is not
> what is documented.
>
>> When you say you want  a new frame for it, you mean that a new window
>> (in the non-Emacs sense) should be created. Is that really what you
>> want?
>
>
> Exactly : what I want is to be able to have one, two or n help frames (yes,
> "windows" in X parlance) available on the screen as necessary : since R has
> now about 5000 available packages, I am unable to learn the syntax and
> arguments of all the available functions in those packages (even if Brian
> Ripley and a few monsters of the same kind seem to be able to, I'm a mere
> mortal...), and online help on more than one function at a time is a
> necessity.

Got it.

I only asked for clarification because this seemed to me an odd thing
to want :-) (because I usually get very confused with too many
frames).

I don't know how to solve this.

As an alternative, activating tabbar-mode seems to group all the help
buffers together quite nicely in a single window.

-Deepayan

>
> A nice touch (but maybe not very simple to implement in elisp) could be to
> have emacs to kill the related help buffer when the user kills the frame
> it's displayed in by using system-level facilities.
>
>
>> -Deepayan
>>
>>> I have a problem : the first call ("?geom_line" at the R prompt) works
>>> fine, but a second call ("?geom_linerange" at the R prompt) ends up in
>>> error with "ess--switch-to-help-buffer: Window is dedicated to
>>> `*help[R](geom_line)*' in the minibuffer (retrieved form the *Messages*
>>> buffer).
>>>
>>> (setq ess-help-own-frame 'one) works as advertised. The code (in
>>> ess-help.el) is not specially enlightening : it uses *ONE* frame,
>>> defined in (defvar ess-help-frame ...). So it appears that the code *is*
>>> intended to display exactly *one* help page at a time, with two
>>> variants :
>>>          - switching to the last requested help page when
>>> ess-help_own-frame is
>>> 'one
>>>          - raising an error when ess-help-own-frame is t and the
>>> ess-help-frame
>>> still exists.
>>>
>>> Do you see a way to effect what I *thought* was advertised : at each
>>> call to the R help system, open (if necessary) a new frame to display
>>> the relevant help page ?
>>>
>>> Sincerely,
>>>
>>>                                          Emmanuel Charpentier
>>>
>>> PS : I'd appreciate being CC'd of answers (including "Go to hell if
>>> necessary) : I do not follow ess-help on a regular basis. (Yes, I
>>> should... but my days are still 24 hours long, despite my wishes...).
>>>
>>> ______________________________________________
>>> ESS-help using r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/ess-help
>
>




More information about the ESS-help mailing list