vimrc – ¿Para qué se utiliza "softtabstop"?

Pregunta:

He estado al tanto de estas configuraciones relacionadas con pestañas en Vim:

  • ts
  • sw
  • expandtab
  • smarttab
  • sts

Mi configuración normal es set ts=4 sw=4 expandtab smarttab .

Pero de acuerdo con la documentación de sts , si no se establece expandtab , intentará usar una combinación de espacios y pestañas para completar el número deseado de espacios en blanco para un tamaño de pestaña.

Realmente no puedo pensar en un escenario útil para esta configuración: ¿Por qué alguien querría tener un número fijo de pestañas y espacios que podrían estropear las cosas? La única ventaja de hacer esto que se me ocurre es reducir la cantidad de caracteres y así reducir el tamaño del archivo, lo que me parece extraño.

Respuesta:

Como se menciona en la documentación de la softtabstop , es útil si desea mantener el tamaño de tabulación predeterminado de 8, pero editar un archivo como si el tamaño de tabulación fuera algún otro valor. Por ejemplo, si desea un nivel de sangría de 4 mientras edita el código, pero algunos comentarios tienen texto con sangría de tabulación, como una tabla que depende de una tabulación de 8, puede establecer sts en 4 .

Una diferencia que noto entre la configuración de las pestañas ( set ts=4 sw=4 expandtab smarttab ) y el uso de sts (por ejemplo, set ts=8 sts=4 ) es cuando se retrocede sobre los espacios en el medio de una línea de texto. Por ejemplo, considere la siguiente línea de texto, donde · indica un espacio:

some·text·······more·text

En el modo de inserción, mueva el cursor justo antes de la m de more text . Con su configuración, presionar Retroceso borra un solo espacio. Pero mientras usa sts=4 , Retroceso borra todo el camino hasta la tabulación anterior, como se comportaría si los espacios fueran un carácter de tabulación en su lugar.

Puede establecer sts=4 además de su configuración y obtener el comportamiento de retroceso de la línea media sin mezclar pestañas y espacios. Las pestañas se expandirán a cuatro espacios, pero puede retroceder en un rango de espacios en el medio de una línea.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım