Zedのインデントに違和感とメタキャラクタの憂鬱
3 min read
こんにちは、無能です。
基本的に標準的であるものは標準的に使いたい性格なのでごちゃごちゃ.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スペースインデントでやるなんて愚の骨頂なのか。
・・・・
どっちでもよくなってきたな・・・。
それではまた。
よろしくお願いします。