2010-01-21 4 views
8

D'un post précédent, je suis arrivé en mode Ruby travaille dans emacs. Cela fonctionne très bien.changement emacs tiret mode rubis à 4 places

Setting up .emacs file for mac ruby development

Notre entreprise utilise 4 espaces pour indentations mais au lieu de la valeur par défaut 2. J'ai du mal à obtenir que cela fonctionne.

Voici mon fichier .emacs

(add-to-list 'load-path "~/rdoc-mode.el")

(require' mode rubis)

(setq indent-tabs-mode nil); toujours remplacer les onglets avec des espaces

(setq-default onglet de largeur 4); Réglage de la largeur de l'onglet à 4 pour tous les tampons

Quelqu'un voit-il ce que je fais mal?

Merci!

+0

La largeur de tabulation contrôle uniquement l'expansion de l'onglet -> espace, pas le -indentation de code malheureusement. –

Répondre

17

Le réglage tab-width ne contrôle que la largeur d'un caractère de tabulation, à savoir le nombre d'espaces un caractère de tabulation est équivalent à lors de l'affichage dans votre tampon. Cela n'affecte pas le nombre d'espaces (ou d'onglets) utilisés pour indenter votre code.

Pour le code Ruby, l'empreinte est contrôlée par la ruby-indent-level variable:

(setq ruby-indent-level 4) 
+0

A travaillé! Merci beaucoup. – Poul

+0

Votre entreprise est bizarre, toutes les autres entreprises Ruby utilise 2 espaces :) – horseyguy

3

Il y a une façon de le faire sans toucher emacs. Vous pouvez mettre un bloc de commentaire spécial à la fin de chaque fichier Ruby qui définit "file variables" spécifique à ce fichier. Toute emacs ou xemacs édition ce fichier utilisera le mode, les paramètres de l'onglet, & etc dans ce bloc de commentaire.

À titre d'exemple, voici le bloc « Variables de fichier » que nous utilisons pour le développement Ruby:

# Local Variables: 
# mode: ruby 
# tab-width: 2 
# ruby-indent-level: 2 
# indent-tabs-mode: nil 
# End: 
14

Les autres affiches ont fourni la bonne réponse, donc je vais mentionner ici comment trouver la réponse à ce genre de question.

Tout d'abord, puisque vous supposiez à juste titre que la largeur tiret serait configurable, la première chose à faire est:

M-x customize-group RET ruby-mode RET 

Et assez sûr, l'une des options de personnalisation, il est « Niveau Ruby Indent » . Vous pouvez le définir et enregistrer les modifications. Terminé!

Vous pouvez également regarder en mode Ruby lui-même:

M-x find-library RET ruby-mode RET 

Puis la recherche (avec C-s) pour 'tiret. Vous y trouverez une définition de variable:

(defcustom ruby-indent-level 2 ...) 

Lorsque vous trouvez une variable comme ça, vous pouvez le mettre dans votre .emacs (ou ~/.emacs.d/init.el) avec setq:

(setq ruby-indent-level 4) 

Vous pouvez également découvrir cette variable apropos:

M-x apropos RET indent ruby RET 

Voilà pourquoi emacs est décrit comme "autodocumenté"!