Можно ли получить автозавершение кода для R в Emacs ESS, подобное тому, что доступно в Rstudio?

Rstudio имеет отличную функцию автозавершения кода. Он обеспечивает быстрый просмотр функций, которые начинаются с заданной строки, а также определения функций и параметров.

ESS достаточно мощный, знакомый мне и интегрированный в Emacs, где я провожу большую часть своей работы, поэтому я не решаюсь двигаться дальше, но эта функция заставляет меня задуматься о таком шаге.

Можно ли интегрировать эту функцию в Emacs ESS?

Есть ли что-нибудь подобное для Emacs ESS?

Есть ли надежда на то, что будет (и если да, то как я могу поддержать такое усилие?)

введите описание изображения здесь


person Abe    schedule 28.07.2011    source источник
comment
Ну ладно. Я попробую попробовать YetAnotherIDE.   -  person IRTFM    schedule 29.07.2011
comment
возможный дубликат расширения Emacs autocomplete-mode для ESS и R   -  person Abe    schedule 22.09.2011
comment
это похоже, но уж точно не обман!   -  person aL3xa    schedule 22.09.2011


Ответы (3)


Вы действительно получаете завершение благодаря пакету rcompgen от Deepayan (теперь "продвинутый" в базовый R как часть пакета utils). Итак, когда я печатаю

lm(

и нажмите TAB, откроется новый буфер, который покажет мне левую часть вашего окна выше: доступные параметры для данной функции. Я не думаю, что вы можете показать помощь напрямую.

Существует / был способ получить контекстную справку в мини-буфере при наборе текста, но я забыл, как и где это включается.

person Dirk Eddelbuettel    schedule 28.07.2011
comment
Emacs для Эддельбюттеля, как мед для Винни-Пуха. ;) - person Joshua Ulrich; 29.07.2011
comment
Совершенно верно. Также застилает мне постель, подает мне кофе и кормит кошку. - person Dirk Eddelbuettel; 29.07.2011
comment
... и отвечает на вопросы и комментарии stackoverflow. - person Joshua Ulrich; 29.07.2011
comment
@ Джошуа Ульрих: Ах, это секрет. - person Ari B. Friedman; 29.07.2011
comment
@Dirk Re: Последний пункт - Может быть ess-eldoc? - person chl; 29.07.2011
comment
Боюсь, что вы не можете получить всплывающую справку для формальных аргументов функции, но вы можете ввести C-c C-v, чтобы получить справку в другом буфере. - person aL3xa; 29.07.2011
comment
Дирк, @Joshua: Я буду регистрировать их как запросы функций для RStudio 0.95. ;) - person Joe Cheng; 30.07.2011
comment
Ты уверен насчет этого Дирка? codetools - это только рекомендуемый пакет в R. Эта функция автозаполнения была взята из пакета Deepyan rcompgen, который был рекомендован, но теперь находится в базе R, помимо утилит. пакет. - person Gavin Simpson; 10.11.2012

[РЕДАКТИРОВАТЬ: это старый ответ, и с тех пор пакет автозаполнения вышел из моды. Вместо этого используйте company-mode. Он должен работать по умолчанию. Запись конфигурации Wiki находится здесь.]

Последние версии ESS (> v.12.02) интегрируются с пакетом автозаполнения из box (ничего настраивать не нужно, просто установите автозаполнение). Он предоставляет справку по аргументам, а также справку по функциям. Я добавил подробные инструкции в wiki

Снимок экрана Ess-ac

введите описание изображения здесь

Ess-eldoc также был переписан, и с версии 12.02 он активен по умолчанию, поэтому вам не нужно ничего настраивать.

person VitoshKa    schedule 25.10.2011
comment
Витошка это та solarize тема, которую ты используешь? - person aL3xa; 23.02.2012
comment
да @ aL3xa, после многих лет использования темной темы спокойного леса я недавно перешел на solarize и вполне им доволен :) - person VitoshKa; 23.02.2012
comment
FWIW, я использую темную тему танго, и мне она нравится, но я бы хотел попробовать соляризацию. Выглядит хорошо. - person aL3xa; 23.02.2012
comment
Как вы настроили свой .emacs так, чтобы справка отображалась во всей красе? :) На моей машине соответствующее всплывающее окно помощи довольно маленькое и некрасивое. - person fotNelton; 30.03.2012
comment
@fotNelton Извините за опоздание. Не заметил ответа. У меня ac-quick-help-prefer-pos-tip установлено на t и (require 'pos-tip). Вы можете играть с цветами, как на примерах в вики-ссылке выше. - person VitoshKa; 05.06.2012
comment
@VitoshKa О, нет проблем, большое спасибо за ответ. Я попробую как можно скорее :) - person fotNelton; 06.06.2012
comment
@VitoshKa Я следил за вашими правками вики, вставив (define-key ac-completing-map (kbd "M-d") 'ac-quick-help), но Mh все еще привязан к отметить абзац. Я пробовал другие сочетания клавиш, и они тоже не работают. Не могли бы вы это проверить? - person Heisenberg; 23.03.2017
comment
@Heisenberg, вы привязываете его к M-d, а не к M-h. Подумайте об использовании режима compay, кстати. Я обновил ответ. - person VitoshKa; 24.03.2017

Или, может быть, нам всем стоит воспользоваться поиском:

Расширение режима автозаполнения Emacs для ESS и R

Я не хочу быть сварливым, я обнаружил это несколько часов назад и до сих пор в шоке. Работает как часы. Хотя я по-прежнему предпочитаю всплывающие окна в старом стиле. знак равно

person aL3xa    schedule 21.09.2011
comment
это не совсем ответ, это скорее комментарий, но вопрос можно было бы лучше выразить, проголосовав за закрытие как можно точного дубликата, как это сделал я. - person Abe; 22.09.2011