2012-02-27 20 views
414

¿Hay alguna manera de forzar a Sublime Text 2 a sangrar siempre dos espacios por pestaña cuando se trabaja con archivos Ruby?¿Cómo fuerzo Sublime Text para sangrar dos espacios por pestaña?

Sé que la sangría se puede establecer en la opción de menú view -> indentation, pero no se pega. Cada vez que abro un nuevo archivo y presiono la pestaña, vuelve a cuatro espacios.

+0

Sublime es ligeramente diferente/raro por defecto. Aunque puede guardar el archivo con múltiples espacios, el editor elimina automáticamente ambos espacios si lo identifica como sangría. – William

Respuesta

749

Si desea para todos archivos, vaya a Preferences -> Settings - Default/User. Pero como indican varios comentarios a continuación, la configuración específica de sintaxis puede limitarlo solo a los idiomas que elija.

Para limitar esta configuración a los archivos Ruby, primero abra un archivo Ruby en el editor y luego vaya al Preferences -> Settings -> More -> Syntax Specific -> User. Esto debería abrir una ventana de configuración llamado Ruby.sublime-settings

Guardar estos ajustes:

{ 
    "tab_size": 2, 
    "translate_tabs_to_spaces": true, 
    "detect_indentation": false 
} 

Repita para cualquier otro tipo de sintaxis mediante la apertura de un archivo de ese tipo y que se remonta a las preferencias para abrir el archivo de preferencias correctas para ese sintaxis.

He editado esto para incluir la línea "detección_indentación" según las solicitudes en los comentarios; Anteriormente usé Default/User para establecer el tamaño de mi pestaña, y no he necesitado la detección de pestañas, pero si eso se debe a la configuración global o al hecho de que raramente he abierto archivos con pestañas, no lo sé.

Reiniciar no debería ser necesario, aunque en algunos casos puede ser.

+11

Desde la compilación 2181. Puede configurar las configuraciones desde Preferencias -> Configuración - Predeterminado/Usuario. Lo mejor es ponerlo en la configuración del usuario, ya que es el enfoque previsto. –

+19

@KevinJalbert (y DGM) En realidad, debería poner eso en la configuración específica de sintaxis, por lo que solo afecta a los archivos de Ruby. –

+4

Observe que el valor es ** verdadero ** y * no * "verdadero". – earthmeLon

156

Si desea forzar la configuración de la ficha elegida, haciendo caso omiso de lo que es probable que ya sucede en el archivo, entonces usted debe incluir detect_indentation en la configuración (configuración de usuario o la configuración de sintaxis específica, dependiendo de si desea que global o por tipo de archivo):

{ 
    "tab_size": 2, 
    "translate_tabs_to_spaces": true, 
    "detect_indentation": false 
} 
+0

¡Gracias por el consejo! Sin detect_indentation' 'apagado que estaba recibiendo un comportamiento muy extraño (que estaba detectando la muesca de forma incorrecta y el uso que en lugar de lo que había especificado en la configuración de mi). – JacobEvelyn

+0

Hacer esto en la configuración predeterminada funcionó para mí. Asegúrese de mirar si la configuración ya existe. Si lo agrega y luego se declara como verdadero, se mantendrá como verdadero. – David

+2

Tenga en cuenta que los cambios en la configuración predeterminada se sobrescribirán con las actualizaciones de Sublime Text, etc. Los cambios en la configuración del usuario no se sobrescribirán. –

72

también puede hacer esto con el enlace de texto en la barra inferior de Sublime Text 2 (en el lado derecho) que dice "Tamaño de la lengüeta 4" por defecto, haga clic en eso y una ventana ofrece opciones para configurar el tamaño de la pestaña desde 1 espacio hasta 8 espacios e incluye opciones para convertir pestañas en espacios y espacios en pestañas.

se ve así:

Tab Options in Sublime Text 2

+3

Un gran consejo, pero ¿sabe si se convierte en una configuración pegajosa? Por ejemplo, cambiar la sangría de la barra de menú superior solo se aplica al archivo abierto actual, y no a otros, que fue mi problema original. – Mohamad

+5

Esto ** no funciona **. Es un buen consejo, pero no es pegajoso: el cierre y la reapertura del archivo (o la apertura de otro archivo) revierten la sangría a cuatro espacios. – Mohamad

+1

Sí, no es pegajoso, es por archivo. Tienes que ir a la configuración de Sublime Text para configurar tu configuración predeterminada para pestañas/espacios. – Taskism

23

¿Puedo sugerir EditorConfig? Hay un extension para autocargar y aplicar el archivo .editorconfig. Entonces solo crea uno en la raíz de tu proyecto.

.editorconfig

[*.rb] 
indent_style = tab 
indent_size = 2 

De esta manera, la configuración es específica para el proyecto y específica de archivo si utiliza diferentes estilos para cada proyecto o idioma.


Así es como se ve mi propio .editorconfig.

# editorconfig.org 
root = true 

[*] 
indent_style = space 
indent_size = 2 
end_of_line = lf 
charset = utf-8 
trim_trailing_whitespace = true 
insert_final_newline = true 
+2

No quería hacer de esto un cambio global. Así que esta fue la única solución que funcionó.Hice algunas investigaciones en EditorConfig y se ve muy bien para los IDEs que lo soportan. –

+1

Dio la casualidad de que ya tenía un archivo .editorconfig en mi proyecto y ni siquiera lo sabía. (angular-cli genera uno) – uglycoyote

0

Seguí las respuestas anteriores, incluida la adición de la línea detect_indentation, y mis pestañas seguían siendo cinco espacios. Entonces me di cuenta de que la selección de Preferences -> Settings -> More -> Syntax Specific -> User de un archivo ruby ​​me estaba abriendo Ruby on Rails.sublime-settings, no Ruby.sublime-settings.

Cambié el nombre de mi archivo Ruby on Rails.sublime-settings al Ruby.sublime-settings. ¡Finalmente, pestañas de dos espacios funcionaron! Seguí adelante y puse la misma configuración en Ruby on Rails.sublime-settings también, solo para estar seguro.

3

Uso el paquete Stupid Indent.

Install Package ->Stupid Indent

Preferences ->Package Settings ->Stupid Indent ->Setting-Users

configuración de copia (de Ruby parte) en.

{ 
    "configuration": 
    [ 
     { 
      "patterns": ["*.rb"], 
      "tab_size": 2, 
      "translate_tabs_to_spaces": true 
     } 
    ] 
} 
+0

yup esto es lo que necesito: D –

Cuestiones relacionadas