Как изменить привязку смарт-клавиши назначения (_ к ‹-) в ESS

Как правильно изменить привязку клавиш для ess-smart-S-assign в emacs ESS?

Я пробовал добавлять

(custom-set-variables
    '(ess-smart-S-assign-key ":"))

к моему .emacs, но из-за этого происходили странные вещи: когда я нажимаю :, появляется обычный :. С другой стороны, нажатие _ один раз дает <- как обычно, а нажатие _ второй раз преобразует это в :. Желаемое поведение - возможность использовать _ в качестве обычного ключа с преобразованием : в <-.

Я использую официальный emacs 24.3 для Windows и последнюю разрабатываемую версию ESS (14.06).


person jhin    schedule 20.08.2014    source источник


Ответы (2)


Вот строка документации для ess-smart-S-assign-key:

Documentation:
Key used by `ess-smart-S-assign'. By default bound to
underscore, but can be set to any key. If this key is customized,
you must add

 (ess-toggle-S-assign nil)
 (ess-toggle-S-assign nil)

after the line that sets the customization and evaluate these
lines or reboot emacs. The first call clears the default
`ess-smart-S-assign' assignment and the second line re-assigns
it to the customized setting. 

Итак: поместите это в свой .emacs файл, чтобы получить желаемое поведение:

(setq ess-smart-S-assign-key ":")
(ess-toggle-S-assign nil)
(ess-toggle-S-assign nil)

Вроде некрасиво, но работает.

person Dan    schedule 20.08.2014
comment
Отлично, спасибо за подсказку! Хотя должен был найти это сам. Я просто надеюсь, что это поможет другим, у которых есть такая же проблема, так как я не нашел ничего действительно связанного в Google. - person jhin; 20.08.2014
comment
Это решает проблему как для сценариев R, так и для интерактивного процесса R. Спасибо. - person ggll; 02.12.2015

Принятый ответ у меня не сработал, но сработало следующее:

(global-set-key (kbd "C-;")  (lambda () (interactive) (insert " <- ")))
(ess-toggle-underscore nil)

Вставьте комбинацию клавиш вместо C-;.

person Drummermean    schedule 21.05.2017
comment
это меняет привязку во всех режимах - person ggll; 22.11.2017