2010-01-21 15 views
8

De una publicación anterior obtuve el modo Ruby trabajando en emacs. Esto está funcionando bien.cambiar emacs ruby-mode sangría a 4 espacios

Setting up .emacs file for mac ruby development

Nuestra empresa utiliza 4 espacios para los guiones aunque en lugar de la opción predeterminada 2. Tengo dificultades para conseguir que esto funcione.

Aquí está mi archivo .emacs

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

(require' rubí modo)

(setq indent-tabs-mode nil); siempre reemplace las pestañas con espacios

(setq-default tab-width 4); conjunto tamaño de la pestaña a 4 para todos los buffers

¿Alguien ve lo que estoy haciendo mal?

Gracias!

+0

tab-width sólo controla la pestaña -> expansión del espacio, no el guión -mode por desgracia. –

Respuesta

17

El ajuste tab-width solo controla el ancho de un carácter de tabulación, es decir, cuántos espacios equivale un carácter de tabulación cuando se muestra en el búfer. No afecta la cantidad de espacios (o pestañas) utilizados para sangrar su código.

Para el código de Ruby, el sangrado está controlado por la variable ruby-indent-level:

(setq ruby-indent-level 4) 
+0

funcionó! Muchas gracias. – Poul

+0

Su empresa es raro, todas las demás compañías de rubí utiliza 2 espacios :) – horseyguy

3

Hay una manera de hacerlo sin tocar .emacs. Puede colocar un bloque de comentario especial al final de cada archivo Ruby que establece "file variables" específico para ese archivo. Cualquier emacs o xemacs que edite ese archivo usará el modo, configuración de pestañas, &, etc. en ese bloque de comentarios.

A modo de ejemplo, aquí es el bloque "variables del archivo" que utilizamos para el desarrollo de Ruby:

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

Los otros críticos han dado la respuesta correcta, de modo que voy a mencionar aquí cómo averiguar la respuesta a este tipo de pregunta.

En primer lugar, puesto que asumió correctamente que el ancho guión podría ser configurable, lo primero que debe intentar es:

M-x customize-group RET ruby-mode RET 

y, efectivamente, una de las opciones de personalización no es "Ruby Nivel de sangría" . Puede configurarlo y guardar los cambios. ¡Hecho!

Alternativamente, se puede ver en el modo de rubí en sí:

M-x find-library RET ruby-mode RET 

Luego de búsqueda (con C-s) para el 'guión'. Allí encontrará una definición de variable:

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

Cuando encuentre una variable de esa manera, se puede establecer en su .emacs (o ~/.emacs.d/init.el) con setq:

(setq ruby-indent-level 4) 

También podría descubrir que la variable usando propósito:

M-x apropos RET indent ruby RET 

Por eso emacs se describe como "auto-documentado"!

Cuestiones relacionadas