Comment empêcher emacs de remplacer underbar par <- in ess-mode

ess-mode est “Emacs parle des statistiques.” Ce mode est utile pour éditer des programmes pour R ou Splus (deux packages statistiques distincts).

Dans mon tampon, quand 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 version ess-mode (inconnue)

A partir du manuel de ESS (regardez sous “Modifications / Nouvelles fonctionnalités dans 5.2.0”):

ESS [S]: appuyer sur le trait de 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, ajoutez "(ess-toggle-underscore nil)" à votre fichier .emacs après le chargement de ess-site

Depuis http://www.r-bloggers.com/a-small-customization-of-ess/ et Comment changer la clé d’affectation intelligente (“_” à “<-") dans ESS

Pour assigner “:” à “<-" et arrêter l'affectation du trait de soulignement (underbar) "_" à "<-" mettez ce qui suit dans .emacs (oui, la ligne répétée est correcte)

 (setq ess-smart-S-assign-key ":") (ess-toggle-S-assign nil) (ess-toggle-S-assign nil) (ess-toggle-underscore nil) ; leave underscore key alone! 

Depuis la fonctionnalité est utile. Vous pouvez l’assigner à une autre clé moins utilisée par vous dans R, elle la désassignera automatiquement du trait de soulignement. Je l’assigne personnellement à ";" en ajoutant la ligne suivante dans le fichier .emacs.

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

Ma version d’emacs est le fichier d’installation tout-en-un 24.3 de Vincent Goulet (installé sur Windows 7)

J’espère que cela t’aides

Modifier Dans emacs 25.2 ci-dessus, ne pas travailler à la place, append les étapes suivantes dans le fichier .emacs

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

Une version plus récente qui a semblé fonctionner pour moi et qui est beaucoup moins verbeuse (vous gardez essentiellement des caractères de soulignement normaux, mais vous pouvez 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 au lieu de C-; .

Comme Michał Marczyk et la liste de diffusion suggérée, ajoutez cette ligne à ~/.emacs :

 (ess-toggle-underscore nil) 

Ensuite, rechargez-le avec Mx load-file et tapez ~/.emacs .

Mais si vous chargez à nouveau le fichier, par exemple si vous ajoutez une autre personnalisation, il retourne à l’état d’origine. Donc, basculez-le deux fois, le premier le forçant à la valeur par défaut:

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

Cela étant dit, j’aime mieux la solution de Drummermean, mais elle revient également à la valeur par défaut si vous l’ajoutez à ~/.emacs et la chargez deux fois. Donc, forcer une bascule à la valeur par défaut avant:

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

J'ai lié l'affectation intelligente à Opt-[minus] comme RStudio (sur un Mac).