¿Cómo fuerzo a Sublime Text a sangrar dos espacios por pestaña?

504

¿Hay alguna manera de obligar a Sublime Text 2 a sangrar siempre dos espacios por pestaña al trabajar con archivos Ruby?

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

Mohamad
fuente
Sublime es ligeramente diferente / raro por defecto. Aunque puede guardar el archivo con múltiples espacios, el editor elimina ambos espacios si lo identifica como sangría.
Lima

Respuestas:

899

Si lo desea para todos los archivos, vaya a Preferences -> Settings - Default/User. Pero como lo 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 archivos Ruby, primero abra un archivo Ruby en el editor y luego vaya a Preferences -> Settings - Syntax Specific. Esto debería abrir una ventana de configuración llamadaRuby.sublime-settings

Guarde esta configuración:

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

Repita para cualquier otro tipo de sintaxis abriendo un archivo de ese tipo y volviendo a las preferencias para abrir el archivo de preferencias correcto para esa sintaxis.

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

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

DGM
fuente
11
Desde la compilación 2181. Puede configurar los ajustes desde Preferencias -> Configuración - Predeterminado / Usuario. Lo mejor es ponerlo en la configuración del usuario, ya que ese es el enfoque previsto.
Kevin Jalbert
20
@KevinJalbert (y DGM) En realidad, debería poner eso en configuraciones específicas de sintaxis, por lo que solo afecta a los archivos Ruby.
Paul Hoffer
66
Observe que el valor es verdadero y no "verdadero".
earthmeLon
1
Esto es especialmente útil ya que la documentación del sitio web de Sublime Text sugiere incorrectamente usar camelCase en lugar de guiones bajos en las teclas de configuración ... aún. ( sublimetext.com/docs/indentation )
Eric Goldberg
@EricGoldberg - No estoy seguro de cómo llegaste a esa página de documentación, pero si vas a sublimetext.com > Soporte, y en Documentación, haces clic en el enlace Sublime Text 2, serás llevado a sublimetext.com/docs/2 - a partir de ahí, puede encontrar los documentos sobre sangría, y las teclas de configuración usan correctamente el guión bajo: sublimetext.com/docs/2/indentation.html
jbyrd
166

Si desea forzar su configuración de pestaña elegida, ignorando lo que probablemente ya está sucediendo en el archivo, debe incluir detect_indentationen su configuración (su configuración de usuario o su configuración específica de sintaxis, dependiendo de si lo desea global o por tipo de archivo):

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false
}
James Chevalier
fuente
¡Gracias por el consejo! Sin detect_indentationapagar, estaba obteniendo un comportamiento muy extraño (estaba detectando la sangría incorrectamente y usándola en lugar de lo que había especificado en mi configuración).
JacobEvelyn
Hacer esto en la configuración predeterminada funcionó para mí. Asegúrese de mirar para ver si la configuración ya existe. Si lo agrega y luego se declara como verdadero, permanecerá establecido como verdadero.
David
3
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.
James Chevalier
66
¡¡GRACIAS!! "detect_indentation":falsees crítico; de lo contrario, se ignoran las otras configuraciones. ¡finalmente!
zzzeek
Es un buen punto, pero su ejemplo tiene una sangría inapropiada ;-)
snow6oy
88

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 pestaña 4" de forma predeterminada, haga clic en eso y aparecerá una ventana con opciones para configurar el tamaño de pestaña desde 1 espacio hasta 8 espacios e incluye opciones para convertir pestañas en espacios y espacios en pestañas.

Se ve como esto:

Opciones de pestaña en Sublime Text 2

Taskism
fuente
3
Gran consejo, pero ¿sabes si eso se convierte en un entorno pegajoso? Por ejemplo, cambiar la sangría desde la barra de menú superior solo se aplica al archivo abierto actual, y no a otros, que era mi problema original.
Mohamad
55
Esto no funciona . Es un buen consejo, pero no es pegajoso: cerrar y volver a abrir el archivo (o abrir otro archivo) revierte la sangría a cuatro espacios.
Mohamad
1
Sí, no es pegajoso, es por archivo. Debe acceder a la configuración de Sublime Text para configurar su configuración predeterminada para pestañas / espacios.
Taskism
Esto resolvió mi problema en Sublime Text 3. ¡Gracias!
Adrian
29

¿Puedo sugerir EditorConfig ? Hay una extensión para cargar automáticamente y aplicar el .editorconfigarchivo. Luego, simplemente cree uno en la raíz de su proyecto.

.editorconfig

[*.rb]
indent_style = tab
indent_size = 2

De esta manera, su configuración es específica del proyecto y del archivo si usa diferentes estilos para cada proyecto o idioma.


Así es .editorconfigcomo se ve el mío .

# 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
Nate
fuente
2
No quería hacer de esto un cambio global. Entonces esta fue la única solución que funcionó. Investigué un poco sobre EditorConfig y se ve muy bien para los IDE que lo admiten.
Neil Monroe
1
Dio la casualidad de que ya tenía un .editorconfig en mi proyecto y ni siquiera lo sabía. (angular-cli genera uno)
uglycoyote
9

Yo uso el paquete Stupid Indent .

Install Package -> Stupid Indent

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

Copie la configuración (de Rubyparte) en.

{
    "configuration":
    [
        {
            "patterns": ["*.rb"],
            "tab_size": 2,
            "translate_tabs_to_spaces": true
        }
    ]
}
Rahn
fuente
Sí, esto es lo que necesito: D
Dragutescu Alexandru
Increíble. Muchas gracias :)
krithikaGopalakrisnan
ADVERTENCIA . Las configuraciones predeterminadas y personalizadas de sangría estúpida obligan a sobrescribir las configuraciones de Sublime Text y EditorConfig . Gracias.
Саша Черных
1

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 seleccionar Preferences -> Settings -> More -> Syntax Specific -> Userde un archivo ruby ​​me estaba abriendo Ruby on Rails.sublime-settings, no Ruby.sublime-settings.

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

Tim Koelkebeck
fuente