5 votes

Désactiver complètement l'indentation automatique d'Emacs en mode JavaScript

J'ai essayé de désactiver l'indentation automatique dans Emacs en JavaScript pendant trois heures maintenant et je n'ai pas trouvé de (bonne) solution.

Ma version d'Emacs est la 23.3.1 (i486-pc-linux-gnu, GTK+ Version 2.24.3), du moins c'est ce qui est indiqué. Il s'agit d'un paquet standard de Debian Linux (Wheezy), le paquet GUI.

J'ai trouvé emacs javascript auto indentation (et d'autres), mais je ne voulais pas installer un autre mode juste pour supprimer l'indentation automatique (et il n'y a aucune garantie qu'il fonctionnerait avec), le mode fondamental désactive également la coloration syntaxique, que je veux conserver, C-c C-l ne fait rien, le réglage de javascript-auto-indent-flag a nil ne fait rien.

Ce que je veux exactement : Insérer une tabulation si et seulement si j'appuie sur la touche TAB. La partie "si" fonctionne, mais pas la partie "seulement si". Je me demande pourquoi c'est si difficile ?

1voto

Fran Points 5143

Dans le mode Javascript d'Emacs, le caractère } est liée à la fonction js-insert-and-indent . Vous pouvez le lier pour qu'il s'insère tout seul en insérant ce code dans votre .emacs fichier de démarrage :

(defun my-js-mode-hook ()
  "My personal Javascript mode hook."
  (local-set-key (kbd "TAB") 'tab-to-tab-stop)
  (local-set-key (kbd "RET") '(lambda () (interactive) (newline 1)))
  (local-set-key (kbd "SPC") 'self-insert)
  (local-set-key (kbd "}") 'self-insert))

(add-hook 'js-mode-hook 'my-js-mode-hook)

et redémarrer Emacs. Si vous trouvez d'autres caractères de ce type, vous pouvez ajouter d'autres appels à local-set-key dans votre fonction d'accroche, chacun avec un caractère différent transmis à la fonction kbd fonction.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X