Как остановить emacs от замены underbar на <- в ess-режиме - PullRequest
54 голосов
/ 28 марта 2010

ess-mode - это «Emacs говорит статистику». Этот режим полезен для редактирования программ для R или Splus (два отдельных пакета статистики).

В моем буфере, когда я набираю _, символ заменяется на <-, что очень неприятно Есть ли в Emacs lisp оператор для отключения этого поведения?

emacs: 22.1.1 выпуск в режиме ess (неизвестно)

Ответы [ 5 ]

64 голосов
/ 28 марта 2010

Из Руководство ESS (см. «Изменения / новые функции в 5.2.0»):

ESS [S]: при нажатии подчеркивания («_») один раз вставляется «<-» (как и раньше); двойное нажатие подчеркивания вставляет буквальное подчеркивание. Чтобы остановить это умное поведение, добавьте «(ess-toggle-underscore nil)» к вашему .emacs после загрузки ess-site </p>

4 голосов
/ 29 марта 2015

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

(setq ess-smart-S-assign-key ";")

Моя версия emacs - это установочный файл 24.3 All-in-one от Винсента Гуле. (Устанавливается в Windows 7)

надеюсь, это поможет

Редактировать В emacs 25.2 выше не работают, вместо этого добавьте следующее в файл .emacs

(setq ess-smart-S-assign-key ";")
(ess-toggle-S-assign nil)
(ess-toggle-S-assign nil)
3 голосов
/ 21 мая 2017

Более свежая версия, которая, как мне показалось, работает и гораздо менее многословна (вы, по сути, сохраняете нормальные подчеркивания, но можете установить свой собственный ключ для этого умного поведения!):

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

Вставьте ваш выбор вместо C-;.

3 голосов
/ 12 декабря 2014

С http://www.r -bloggers.com / a-small-custom-of-ess / и Как изменить привязку смарт-клавиши назначения ("_" к "<-") в ESS </a>

Чтобы присвоить ":" значению "<-" и остановить назначение подчеркивания (подчеркивания) "_" к "<-", введите в .emacs следующее (да, повторная строка верна) </p>

(setq ess-smart-S-assign-key ":")
(ess-toggle-S-assign nil)
(ess-toggle-S-assign nil)
(ess-toggle-underscore nil) ; leave underscore key alone!
0 голосов
/ 25 апреля 2018

Как и Михал Марчик и эта ветка списка рассылки R предлагает добавить эту строку в ~/.emacs:

(ess-toggle-underscore nil)

Затем перезагрузите его с помощью M-x load-file и введите ~/.emacs.

Но , если вы снова загрузите файл, например, если вы добавите другую настройку, она вернет ее в исходное состояние. Так что переключите его дважды, первый из которых принудительно установит его по умолчанию:

(ess-toggle-underscore t)
(ess-toggle-underscore nil)

При этом мне нравится решение Drummermean, но оно также возвращается к значению по умолчанию, если вы добавите его в ~/.emacs и загрузите его дважды. Так что принудительно переключите значение по умолчанию перед:

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

Я привязал умное назначение к Opt-[minus], как RStudio (на Mac).

...