Недавно я обновился от версии 2.15 и более старой версии ESS с помощью установщика Windows 7 от Vincent Goulet по адресу http://vgoulet.act.ulaval.ca/en/emacs/. Это включает в себя версию ESS 13.09. Я также только что установил R версии 3.0.2.ess-execute привязка ключа не работает с новой версией ESS
Мой старый рабочий процесс состоял в использовании C-c C-t (привязка по умолчанию) для запуска команд через ess-execute
и отправки результатов во временный буфер. Я нашел это невероятно полезным для моего рабочего процесса и стиля программирования R.
Однако с новой версией эта привязка ключа была удалена. Я искал вокруг и не мог найти другие темы, касающиеся этой темы. Я заглянул в ess-mode.el и нашел эту строку:
;; (define-key map "\C-c\C-t" 'ess-execute-in-tb)
Что закомментировано. Я вижу, что они добавили приятную функцию ess-describe-object-at-point
, но это не позволяет выполнять команды.
Я не emacs power-user, поэтому я стараюсь скопировать фрагменты lisp в мои .emacs и делать небольшие изменения для них. Я попытался (1) раскомментировать строку выше и (2) определить новый keybinding в моем файле .emacs в том же месте, что и новые привязки клавиш в ESSShift Enter (http://www.emacswiki.org/emacs/ESSShiftEnter).
(add-hook 'ess-mode-hook
(lambda()
(local-set-key [(shift return)] 'my-ess-eval)
;; added Ctrl-Enter to stay on same line
(local-set-key [C-return] 'ess-eval-line)
;; Newest version of ESS got rid of C-c C-t for ess-execute add back
(local-set-key "\C-c\C-t" 'ess-execute-in-tb))
Однако ни один из этих методов не работал.
Мои вопросы: есть ли причина, по которой этот ключ был отключен в новой версии? То есть следует ли использовать другую функцию, которая заменила его? Если нет, то как лучше всего включить эту привязку клавиш?
Спасибо за этот ответ, я попробовал ваш код и действительно работал. Я сделал ошибку раньше, поэтому мой код не работал. Мне очень нравится функциональность ess-execute, но одна вещь, которую я заметил с новой версией, заключается в том, что завершение не работает. То есть если я делаю M-x ess-execute, тогда введите st и, где говорится: «Нет процесса ESS, связанного с этим буфером» - есть ли простой способ вернуть эту функциональность? Спасибо за работу над всеми улучшениями, я не могу представить кодирование без ESS на этом этапе! –
@ColeMonnahan Спасибо, что указали это. Я только что исправил его в ESS. – VitoshKa