Дискомфорт с отступами в Zed и уныние метасимволов

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

Image
Здравствуйте, это я, бездарь.
Поскольку я из тех, кто хочет использовать стандартные вещи стандартным образом, я не хочу загромождать свой .vimrc лишними записями, и в таком случае функция автоотступа для других языков становится довольно проблематичной, поэтому я недавно начал использовать Zed, но это как-то странно.

Что это...?

Почему-то это сильно отличается от того, что я вижу, когда открываю его в zeditor. Почувствовав дискомфорт, я решил разобраться.

Если посмотреть с помощью 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}$

Что...?

Ничего не поделаешь, но я справился, однако...

Попробую заменить один раз и снова сохранить в Zed. Итак, после одной замены...

sed "s/\t/  /g"

Затем, сохранив в Zed и снова попробовав 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)$

Уваааааааааааааааааааа
Нет спасения...

Если вы все же хотите использовать отступ в 2 пробела

Похоже, что выполнение :%s/\t/ /g в режиме vim в Zed, а затем :wq не имеет смысла.

Кажется, у меня нет другого выбора, кроме как каждый раз запускать sed -i "s/\t/ /g, или форкнуть и пересобрать его полностью под себя...
Кстати,
Indentation conversion #4291
существует проблема с конвертацией.
И, если один раз заменить все символы табуляции с помощью sed, а затем установить ~/.config/zed/settings.json как

  "useTabs": false,
  "hard_tabs": false,

Если настроить так, то пока можно избежать этого.
Но, похоже, import, где срабатывает форматировщик, все равно превращается в табы.

Подождите, а как же моя изначальная натура, которая хочет использовать стандартные вещи стандартным образом?

Я так подумал, но go fmt, похоже, приводит отступы в порядок, но они автоматически становятся табуляцией.
Если это рекомендуется по умолчанию, то, возможно, использовать отступы в 2 пробела — это верх глупости?

....
Мне уже все равно...
До скорого.
Всего наилучшего.

Related Posts