Cómo evitar que emacs reemplace la barra inferior con < -en el modo ess


ess-mode es " Emacs habla estadística."Este modo es útil para editar programas para R o Splus (dos paquetes de estadísticas separados).

En mi búfer, cuando escribo _ el carácter se reemplaza por <-, lo cual es muy frustrante. ¿Hay una declaración de emacs lisp para desactivar este comportamiento?

Emacs: 22.1.1 ess-mode release (unknown)

 51
Author: Zyerah, 2010-03-28

5 answers

Del manual de ESS (mira en "Cambios / Nuevas características en 5.2.0"):

ESS[S]: Presionar el guion bajo ("_") una vez inserta "

 61
Author: Michał Marczyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-28 00:07:07

De http://www.r-bloggers.com/a-small-customization-of-ess/ y Cómo cambiar el enlace smart assign key ("_" a "

Asignar ":" a"

(setq ess-smart-S-assign-key ":")
(ess-toggle-S-assign nil)
(ess-toggle-S-assign nil)
(ess-toggle-underscore nil) ; leave underscore key alone!
 3
Author: WMash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:33:26

Ya que la característica es útil. Puede asignarlo a otra clave que sea menos utilizada por usted en R, lo desasignará automáticamente desde el subrayado. Yo personalmente lo asigno a ";" agregando la siguiente línea .archivo emacs.

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

Mi versión de emacs es 24.3 All-in-one installation file de Vincent Goulet.(Instalado en windows 7)

Espero que esto ayude

Editar En emacs 25.2 anterior no funcionan en su lugar añadir lo siguiente en el .emacs file

(setq ess-smart-S-assign-key ";")
(ess-toggle-S-assign nil)
(ess-toggle-S-assign nil)
 3
Author: Kushdesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-12 05:59:20

Una versión más reciente que parecía funcionar para mí, y es mucho menos detallada (esencialmente, mantener guiones bajos normales, pero puede establecer su propia clave para este comportamiento inteligente!):

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

Inserte su opción de clave corta en lugar de C-;.

 2
Author: Drummermean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-21 20:46:08

Como Michał Marczyk y este hilo de la lista de correo R sugerido, agregue esta línea a ~/.emacs:

(ess-toggle-underscore nil)

Luego recargue con M-x load-file y escriba ~/.emacs.

Pero si vuelve a cargar el archivo, por ejemplo, si agrega otra personalización, entonces lo cambia al estado original. Así que alterna dos veces, la primera forzándola a la predeterminada:

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

Dicho esto, me gusta más la solución de Drummermean, pero también vuelve a su valor predeterminado si se agrega a ~/.emacs y cárgalo dos veces. Así que fuerza un conmutador al valor predeterminado antes de:

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

Vinculé la asignación inteligente a Opt-[minus] como RStudio (en un Mac).

 0
Author: mmorin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-25 16:26:42