Incomodidad con la indentación de Zed y la melancolía de los metacaracteres

Hola, soy un inútil.
Como soy del tipo de persona que quiere usar lo que es estándar de forma estándar, no me gusta escribir cosas desordenadas en mi .vimrc, y eso hace que la función de autoindentación para otros lenguajes sea bastante difícil, así que recientemente empecé a usar Zed, pero es bastante extraño.
¿Qué será...?
De alguna manera, el mundo que veo cuando lo abro con zeditor es muy diferente.
Me sentí incómodo y decidí investigar.
Al verlo con cat -A...
$ cat -A main.go
package main$
$
import ($
^I"fmt"$
^I"net/http"$
^I"os"$
$
^I"golang.org/x/net/html"$
)$
$
func fetchOGP(url string) (siteName string, title string, err error) {$
^Iresp, err := http.Get(url)$
^Iif err != nil {$
^I^Ireturn "", "", fmt.Errorf("failed to fetch OGP URL: %w", err)$
^I}$
^Idefer resp.Body.Close()$
$
^Idoc, err := html.Parse(resp.Body)$
^Iif err != nil {$
^I^Ireturn "", "", fmt.Errorf("failed to parse HTML: %w", err)$
^I}$
$
^Ivar findOGP func(*html.Node)$
^IfindOGP = func(n *html.Node) {$
^I^Iif n.Type == html.ElementNode && n.Data == "meta" {$
^I^I^Ivar property, content string$
^I^I^Ifor _, attr := range n.Attr {$
^I^I^I^Iif attr.Key == "property" {$
^I^I^I^I^Iproperty = attr.Val$
^I^I^I^I} else if attr.Key == "content" {$
^I^I^I^I^Icontent = attr.Val$
^I^I^I^I}$
^I^I^I}$
¿Eh...?
No había nada que hacer, pero lo solucioné, aunque...
Intenté reemplazarlo una vez y guardarlo de nuevo con Zed. Con esto, lo reemplacé una vez y...
sed "s/\t/ /g"
Luego, lo guardé con Zed y lo volví a ver con cat -A...
$ cat -A main.go
package main$
$
import ($
^I"fmt"$
^I"net/http"$
^I"os"$
$
^I"golang.org/x/net/html"$
)$
$
func fetchOGP(url string) (siteName string, title string, err error) {$
^Iresp, err := http.Get(url)$
^Iif err != nil {$
^I^Ireturn "", "", fmt.Errorf("failed to fetch OGP URL: %w", err)$
^I}$
^Idefer resp.Body.Close()$
$
^Idoc, err := html.Parse(resp.Body)$
^Iif err != nil {$
^I^Ireturn "", "", fmt.Errorf("failed to parse HTML: %w", err)$
^I}$
$
^Ivar findOGP func(*html.Node)$
¡¡¡AAAAAAAHHHHHHHH!!!
No puedo escapar...
Si realmente quieres usar la indentación de 2 espacios
Parece que hacer :%s/\t/ /g en modo vim en Zed y luego :wq no tiene sentido.
Parece que no hay más remedio que usar sed -i "s/\t/ /g cada vez, o hacer un fork y reconstruirlo completamente para mi uso personal...
Por cierto,
Indentation conversion #4291
Hay un issue abierto para la conversión.
Y, después de reemplazar globalmente los caracteres de tabulación con sed una vez, el archivo ~/.config/zed/settings.json...
"useTabs": false,
"hard_tabs": false,
Si lo configuras así, puedes escapar por ahora.
Sin embargo, parece que los imports, donde el formateador entra en acción, siempre se convierten en tabulaciones.
¿Eh? ¿Y qué hay de mi personalidad original de querer usar lo que es estándar de forma estándar?
Pensé eso, pero go fmt supuestamente limpia la indentación, y esto se convierte automáticamente en indentación con tabulaciones.
Si el estándar lo recomienda, ¿sería una tontería usar indentación de 2 espacios?
....
Ya me da igual...
Hasta la próxima.
Saludos.