Zedのインデントに違和感とメタキャラクタの憂鬱

3 min read

Image
こんにちは、無能です。
基本的に標準的であるものは標準的に使いたい性格なのでごちゃごちゃ.vimrcに記述することをしたくなく、そうなると他言語のAuto Indent機能がなかなか苦しいので最近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スペースインデントを使いたいなら

zed上のvimモードでの:%s/\t/ /gをしてから:wqは意味が無いようで

毎回sed -i "s/\t/ /g、するかフォークして完全自分用にビルドし直すしかないか・・・。
一応
Indentation conversion #4291
コンバートするissusは立っている。
そして、一度全体的にタブ文字をsedで書き換えて~/.config/zed/settings.json

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

これで設定すれば一応は逃れられる。
が、フォーマッタが効いてしまうimportはどうしてもタブになってしまうようだ。

あれ?元の基本的に標準的であるものは標準的に使いたい性格とは

って思ったんだが、go fmtでインデントがキレイになるようなんだがコレが勝手にタブインデントになる。
標準で推奨しているなら、わざわざ2スペースインデントでやるなんて愚の骨頂なのか。

・・・・
どっちでもよくなってきたな・・・。
それではまた。
よろしくお願いします。

PGP --- Contact --- Machines