Подтвердить что ты не робот

Возможно ли получить код для R в Emacs ESS, аналогичный тому, что доступно в Rstudio?

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

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

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

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

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

enter image description here

4b9b3361

Ответ 1

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

lm(

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

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

Ответ 2

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

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

Ess-ac screenshot

enter image description here

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

Ответ 3

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

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

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