¿Hay alguna manera de quitar automáticamente la etiqueta de todo en su archivo fuente mediante un comando? [cerrado]

11

¿Y luego volver a sangrar automáticamente después de eso? Intenté copiar el código de una pantalla de terminal a la otra, pero la tabulación se equivocó.

No sabía cómo llamar a esta funcionalidad, por lo que fue difícil para mí encontrarla en Google (que generalmente devolvió cosas relacionadas con cómo establecer el tamaño de la pestaña, que desafortunadamente no era lo que estaba buscando).

Templario oscuro
fuente
Relacionado: ¿Cómo reemplazar pestañas con espacios? en Vim SE
kenorb
1
Estoy votando para cerrar esta pregunta como fuera de tema porque se trata de una herramienta de programación. Preguntas sobre herramientas se adaptan mejor a stackoverflow , o en este caso, Vi.SE . Sin embargo, esta pregunta es demasiado antigua para migrar.
1
Voy a votar a cerrar esta pregunta fuera del tema porque se trata de la utilización de una herramienta específica y debería haber sido preguntado sobre el desbordamiento de pila o (si se le pide ahora) vi.se .

Respuestas:

9

Vim tiene un retabcomando que le permite tabular o destabificar su documento. Utiliza configuraciones como tabstopy expandtab. Entonces, si desea reemplazar las pestañas con espacios, puede hacer lo siguiente:

:%retab

Consulte la retabdocumentación para más detalles.

Advertencia de Emptor : esto también reemplaza las pestañas que NO están al comienzo de una línea. Entonces, si usa pestañas duras en el medio de las cadenas, también se reemplazarán.

Kaleb Pederson
fuente
3
En general, se considera una mala idea incluir una pestaña verdadera en una cadena de todos modos. Todavía puede suceder, pero \tse prefiere, solo para evitar este tipo de problemas.
Spencer Rathbun
6

Para ampliar la respuesta de @ Kaleb (aún no tengo el representante para comentar), antes de ejecutar el comando retab, deberá hacerlo :set expandtab (set et). De lo contrario, el retab no reemplazará las pestañas con espacios.

Además, es posible que desee especificar los tabuladores. A menudo, en el código fuente creado por otros, el código se escribe con topes configurados en 4 o incluso 2. Antes de :%retabejecutar el comando, experimente con diferentes topes. Tratar

:set ts=8 (the default)
:set ts=4 
:set ts=2  

para ver qué configuración tiene más sentido.

Para ir hacia atrás (reemplazar espacios con caracteres TAB apropiados, use

:set noet
:%retab!
Firstrock
fuente
1

Por un-tab, ¿te refieres a cambiar las pestañas a espacios? Si es así, sustituya espacios por pestañas en todo el búfer de esta manera:

:%s/^I/    /g

Eso son cuatro espacios en el lado derecho de la sustitución, pero puede hacer el número que desee. Para obtener el ^Icarácter de tabulación literal , puede presionar ^Vseguido de la tecla Tab.

Puede volver a sangrar con el =comando. Para volver a sangrar todo el contenido del búfer, use estos comandos:

gg
=G

Esto lo lleva a la parte superior, luego vuelve a sangrar todo a la parte inferior.

boshvark
fuente
-1: Reemplazar una pestaña con un número fijo de espacios casi nunca es útil. Cambiará la apariencia de cualquier línea que contenga una pestaña precedida por una no pestaña.
Kevin Cline