46 votes

Formater automatiquement un fichier source dans emacs

Comment appliquer un ensemble de règles de formatage à un fichier source existant dans emacs?

Plus précisément, j'ai un fichier d'assemblage ( *.s ), mais j'aimerais une commande générique pour tous les types de fichiers.

J'essaie d'utiliser M-x c-set-style avec gnu style, mais j'obtiens une erreur:

Buffer * .s n'est pas un tampon de mode CC (style de c-set)

109voto

Trey Jackson Points 49816

Ouvrez le fichier et ensuite appliquer un retrait par l'indentation de l'ensemble de la région:

M-x find-file /path/to/file RET
C-x h                             (M-x mark-whole-buffer)
C-M-\                             (M-x indent-region)

Maintenant, il semble que vous essayez d'appliquer C en retrait pour un tampon qui n'est pas dans C mode. Pour l'obtenir en C en mode

M-x c-mode

Ou c++-mode, ou quel que soit le mode que vous voulez. Mais, puisque c'est du code assembleur, vous voulez probablement assembleur mode (qui Emacs fera par défaut pour les .s fichiers). Dans ce cas, le retrait de la commande au-dessus de (C-M-\ est également connu comme M-x indent-region) qui devrait fonctionner pour vous.

Remarque: la séquence de commande en haut peut être roulé en une seule commande comme ceci:

(defun indent-file (file)
  "prompt for a file and indent it according to its major mode"
  (interactive "fWhich file do you want to indent: ")
  (find-file file)
  ;; uncomment the next line to force the buffer into a c-mode
  ;; (c-mode)
  (indent-region (point-min) (point-max)))

Et, si vous voulez savoir comment associer les principaux modes de fichiers basé sur les extensions, consultez la documentation de l'auto-mode-accédez à la liste. Pour être juste, il n'est pas nécessairement l'extension de base, juste des expressions régulières en correspondance avec le nom de fichier.

7voto

pgs Points 3453

Essayez M-x asm-mode . Cela passera en mode assembleur. Vous ne savez pas comment cela se passera avec un assembleur intégré au milieu d'un fichier C.

1voto

cppguy Points 84

emacs utilisera l’extension de nom de fichier pour identifier le mode; vous devez ajouter un style de mode assembler la langue dans votre fichier custom.el.

0voto

stsquad Points 2893

Le mode majeur utilisé pour vos fichiers .s ne sera pas le mode cc, c-set-style n’a donc aucun sens. Cependant, vous pouvez toujours entrer manuellement en mode cc (Mx cc-mode), puis créer le style de c-set que vous souhaitez. Cependant, comme les styles C sont définis pour le code source C et non pour l'assembleur, ce n'est certainement pas ce que vous voulez faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X