2010-03-27 5 views
49

ess-mode est "Emacs parle statistiques". Ce mode est utile pour éditer des programmes pour R ou Splus (deux paquets de statistiques séparés).Comment empêcher Emacs de remplacer underbar avec <- in-mode

Dans mon tampon, quand jamais je tape _ le caractère est remplacé par <-, ce qui est très frustrant. Existe-t-il une instruction emacs lisp pour désactiver ce comportement?

emacs: 22.1.1 libération ess mode (inconnu)

+4

Je trouve cette fonctionnalité assez pratique, et comme Michal posté, presser le soulignement deux fois insère un trait de soulignement littéral. La chaîne d'affectation '<-' est de loin plus utilisée dans la programmation R que le trait de soulignement (ou est-ce juste ma perception)? Quoi qu'il en soit, il fait bien le travail pour moi ... – aL3xa

+1

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

+0

d'accord avec aL3xa cette fonctionnalité est un énorme outil de workflow. – mcheema

Répondre

60

De ESS's manual (consultez la rubrique "Changements/Nouvelles fonctionnalités 5.2.0"):

ESS [S]: En appuyant sur soulignement ("_") une fois insère "< -" (comme avant); appuyer deux fois sur le trait de soulignement insère un trait de soulignement littéral. Pour arrêter ce comportement intelligent, ajouter "(sse-bascule-underscore nul)" à votre .emacs après ess-site a été chargé

+8

Juste pour être explicite, '(require 'ess-site)' devrait précéder '(ess-toggle-underscore nil)' dans .emacs ou .emacs.d/init.el. – jthetzel

2

Puisque la fonction est utile. Vous pouvez l'affecter à une autre touche qui est moins utilisée par vous dans R, elle sera automatiquement désaffectée du caractère de soulignement. Personnellement, je l'attribue à ";" en ajoutant la ligne suivante dans le fichier .emacs.

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

Ma version de emacs est 24,3 Tout-en-un fichier d'installation par Vincent Goulet. (Installé sur Windows 7)

this helps

Modifier Dans emacs 25,2 ci-dessus ne ne fonctionne pas à la place ajouter à la suite dans le fichier .emacs

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

Cela a arrêté le problème de remplacement de soulignement, mais quand j'appuie sur ";" ça ne fait pas un "<-" ...? – maia

+0

Il fait '<-' dans ma version d'emacs sur Windows 7. Est-ce que vous êtes différent? – Kushdesh

1

Une version plus récente qui seeme d de travailler pour moi, et est beaucoup moins bavard (vous gardez essentiellement underscores normal, mais peut définir votre propre clé pour ce comportement intelligent!):

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

Insérez votre choix de raccourci clavier au lieu de C-;.

Questions connexes