Respuestas:
Aquí hay un buen truco en Sublime Text 2 o 3 para convertir su espacio de sangría en un documento.
TL; DR:
Conversión de 2 espacios a 4 espacios:
Asegúrese de que el ancho de la pestaña esté configurado en 2. Convierta su sangría de 2 espacios en pestañas, cambie al ancho de la pestaña 4 y luego convierta la sangría nuevamente en espacios.
La descripción detallada:
Ir:
View -> Indentation
Debería leer:
Indent using spaces [x]
Tab width: 2
Seleccione:
Convert Indentation to Tabs
Luego seleccione:
Tab width: 4
Convert Indentation to Spaces
Hecho.
De hecho, descubrí que es mejor para mi cordura tener preferencias de usuario que se definan así:
"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false
Esto detect_indentation: false
es especialmente importante, ya que obliga a Sublime a respetar estas configuraciones en cada archivo, en lugar de las View -> Indentation
configuraciones.
Si quieres ponerte elegante, también puedes definir un atajo de teclado para volver a sangrar automáticamente tu código (YMMV) pegando lo siguiente en Sublime -> Preferences -> Key Binding - User
:
[
{ "keys": ["ctrl+i"], "command": "reindent" }
]
y para visualizar el espacio en blanco:
"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],
En mi opinión, encontré una solución más simple que Magne:
En mac:
"cmd+f" => " "(two spaces) => "alt+enter" => "arrow right" => " "(two more spaces) => set tab width to 4(this can be done before or after.
En las ventanas u otras plataformas de cambio cmd+f
y alt+enter
con lo que sus find
y select all
teclas de acceso rápido son.
Nota: este método es propenso a "errores" si tiene más de un espacio dentro de su código. Por lo tanto, es menos seguro que el método de Magne, pero es más rápido (al menos para mí).
RubyFormat
, simplemente puede establecer el tamaño de pestaña deseado y luego reformatear el código. En el caso de RubyFormat
que sería cmd+shift+R
.
Si bien muchas de las sugerencias funcionan al convertir 2 -> 4 espacios. Me encontré con algunos problemas al convertir 4 -> 2.
Esto es lo que terminé usando:
Sublime Text 3/Packages/User/to-2.sublime-macro
[
{ "args": null, "command": "select_all" },
{ "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" },
{ "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" },
{ "args": { "set_translate_tabs": true }, "command": "expand_tabs" },
{ "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" }
]
Si encuentra la búsqueda y el reemplazo más rápido de usar, podría usar un reemplazo de expresiones regulares como este:
Find (regex): (^|\G) {2}
(En lugar de "{2}" <space>{2}
puedes escribir dos espacios. Lo usaste aquí para mayor claridad).
Reemplace con 4 espacios, o lo que quiera, como \t
.
Debe agregar este código a sus asociaciones de teclas personalizadas:
{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }
presionando ctrl + f12, reinventará su archivo a un tamaño de pestaña de 4. si desea un tamaño de pestaña diferente, simplemente cambie el número de "valor". El formato es un simple json.
{ "keys": ["ctrl+f10"], "command": "set_setting", "args": {"setting": "translate_tabs_to_spaces", "value": 2} }, { "keys": ["ctrl+f11"], "command": "set_setting", "args": {"setting": "tab_size", "value": 2} }, { "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} },
Lo más fácil que hice fue
cambié mi sangría a pestañas
Y resolvió mi problema.
Puedes hacer lo mismo,
a espacios
así como por su necesidad
Mencionó la instantánea de la misma.
Recientemente me enfrenté a un problema similar. Estaba usando el editor sublime. No es un problema con el código sino con el editor.
A continuación, el cambio en la configuración de preferencias funcionó para mí.
Menú Sublime Text -> Preferencias -> Configuración: Específico de sintaxis :
{
"tab_size": 4,
"translate_tabs_to_spaces": true
}