2010-03-27 5 views
49

ess-mode es "Emacs habla estadísticas". Este modo es útil para editar programas para R o Splus (dos paquetes de estadísticas separados).Cómo evitar que emacs reemplace la barra inferior con <- en el modo ess

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

emacs: 22.1.1 de liberación en modo ESS (desconocido)

+4

Encuentro esta característica bastante conveniente, y al igual que Michal publicado, presionar subrayado dos veces inserta un guión bajo literal. La cadena de asignación '<-' se utiliza mucho más en la programación R que el guión bajo (o es solo mi percepción). De todos modos, hace bien el trabajo para mí ... – aL3xa

+1

Duplicado - ver http://stackoverflow.com/questions/1816238/how-to-turn-off-auto-replacement-in-emacs-speaks-statistics-for- r – csgillespie

+0

de acuerdo con aL3xa esta característica es una gran ayuda de flujo de trabajo. – mcheema

Respuesta

60

De ESS's manual (busque en la sección "Cambios/Nuevas características en 5.2.0"):

SEE [S]: Al pulsar el subrayado ("_") una vez inserta "< -" (como antes); presionar subrayado dos veces inserta un guión bajo literal. Para detener este comportamiento inteligente, añadir "(nula ess-toggle-subrayado)" a su .emacs después ess-sitio ha sido cargado

+8

Para ser explícito, '(require 'ess-site)' debe preceder '(ess-toggle-underscore nil)' en .emacs o .emacs.d/init.el. – jthetzel

2

Puesto que la característica es útil. Puede asignarlo a otra tecla que usted use menos en R, lo desasignará automáticamente del guión bajo. Personalmente lo asigno al ";" agregando la siguiente línea en el archivo .emacs.

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

Mi versión de emacs es 24.3 Todo en un archivo de instalación de Vincent Goulet. (Instalado en Windows 7)

espero que esto ayude

Editar en Emacs 25.2 anteriores no no funciona, en su lugar, agregue los siguientes en el archivo .emacs

(setq ess-smart-S-assign-key ";") 
(ess-toggle-S-assign nil) 
(ess-toggle-S-assign nil) 
+1

Esto detuvo el problema del reemplazo del subrayado, pero cuando presiono ";" no hace un "<-" ...? – maia

+0

Hace '<-' en mi versión de emacs en Windows 7. ¿Es diferente? – Kushdesh

1

Una versión más reciente que parece d para trabajar para mí, y es mucho menos detallado (se mantiene esencialmente guiones normales, pero puede configurar su propia clave de este comportamiento inteligente!):

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

Introduzca su elección ShortKey en lugar de C-;.

Cuestiones relacionadas