Emacs+ESS+R: Как открыть страницу справки в новом буфере

В настоящее время я установил options(help_type="text"), а getOption("help_type") возвращает "text". Не знаю, почему, но R по-прежнему открывает новое окно или вкладку браузера, когда я набираю ?par в нижнем буфере ESS (iESS). Если я явно оцениваю help(par,help_type="text"), содержимое страницы справки печатается в буфере iESS. Я думал, что есть способ открыть содержимое в отдельном буфере Emacs — я ошибался?


person hatmatrix    schedule 23.08.2011    source источник
comment
на моем emacs есть строка, которая говорит следующее: .help.ESS ‹- help — появляется ли эта строка при запуске ESS. Кроме того, в какой системе вы используете emacs и какую версию emacs и ESS используете? также какова ценность команды-помощника-эсс?   -  person richiemorrisroe    schedule 23.08.2011
comment
Спасибо -- .help.ESS <- help появляется, а значение inferior-ess-help-command равно "utils::help(\"%s\", help_type=\"html\")\n" в Emacs 24 в OS X...   -  person hatmatrix    schedule 23.08.2011
comment
если вы настроите команду inferior-ess-help (используя меню настройки) на текст, то вы должны получить файлы справки в новом буфере.   -  person richiemorrisroe    schedule 23.08.2011
comment
(setq inferior-ess-help-command "utils::help(\"%s\")\n") видимо тоже не помогает   -  person hatmatrix    schedule 23.08.2011
comment
Спасибо -- у меня была другая переменная, inferior-ess-r-help-command, определенная в моих файлах конфигурации, и она присваивалась глобальному значению моей переменной inferior-ess-help-command. Должно быть перенесено из более старой установки.   -  person hatmatrix    schedule 23.08.2011
comment
Проблема решена - установите значение inferior-ess-help-command на "utils::help(\"%s\")\n" - если вы опубликуете это как ответ, я могу пометить его и закрыть вопрос?   -  person hatmatrix    schedule 23.08.2011


Ответы (2)


Если (как мы выяснили в комментариях) вы установили для команды inferior-ess-help значение "utils::help(\"%s\")\n", то проблема была решена.

Похоже, это было вызвано другой низшей-ess-help-командой в файле конфигурации.

Всегда полезно запускать emacs с параметрами -nw, если у вас возникают подобные странные проблемы.

person richiemorrisroe    schedule 23.08.2011

В файле .emacs включите одно из этих двух утверждений.

Первый должен открывать каждый запрос ?foo в своем собственном фрейме/буфере.

;;;;; create a new frame for each help instance
(setq ess-help-own-frame t)

Эта вторая версия имеет единый буфер для всех страниц справки, которые вы вызываете.

;;;;; If you want all help buffers to go into one frame do
(setq ess-help-own-frame 'one)
person Gavin Simpson    schedule 23.08.2011
comment
Хм, не совсем это сделал... теперь открывается новый фрейм с пустым буфером справки, но все равно открывается браузер файлов справки... - person hatmatrix; 23.08.2011
comment
А, хорошо, теперь я вижу - вы смешали два вопроса, или, по крайней мере, я так думал. Вышеупомянутое работает только для текстовой справки, поэтому вам нужно решить это (что, похоже, сделал @richiemorrisroe) - вышеизложенное может быть полезно, если вы хотите настроить, как Emacs/ESS обрабатывает текстовую справку. - person Gavin Simpson; 23.08.2011
comment
Думаю, я был... два из них: как 1) заставить iESS использовать help_type=text, а не html и 2) как открыть его в буфере Emacs. На самом деле в данный момент мне нравится поведение по умолчанию открытия файла справки в другом окне, но я буду помнить о вашем решении, если я хочу, чтобы он открывался в отдельном фрейме - спасибо. - person hatmatrix; 23.08.2011