昨今の「AI」というキーワードに惑わされて試してみようかなとVoidというエディターを使ってみることにしました。
VS Codeを使っているプロジェクトはghqで1つのディレクトリにまとめてpecoで移動するようにしているのですが、その中にVoidで編集しているプロジェクトを混ぜてしまうと使うエディターを間違ってしまうリスクが当然高くなります。
ということで指定したディレクトリー配下のサブディレクトリーのリストを表示するコマンドをGoで作ってみました。
package main import ( "fmt" "os" "path/filepath" ) func main() { if len(os.Args) != 2 { return } baseDir := os.Args[1] entries, err := os.ReadDir(baseDir) if err != nil { return } for _, entry := range entries { if !entry.IsDir() { continue } dirPath := filepath.Join(baseDir, entry.Name()) gitDir := filepath.Join(dirPath, ".git") info, err := os.Stat(gitDir) if err != nil || !info.IsDir() { continue } fmt.Println(dirPath) } }
やっていることは単純で指定したディレクトリーの配下のサブディレクトリーのうち.gitディレクトリーが存在するものだけをリストアップするものです。
ビルドしてpecoで表示するまでを試してみましたが、とくに問題もなく使うことができました。こういう小さなツールを自作すると作業が快適になりますね。
ただ、pecoみたいな便利なツールに慣れてしまうといちいちcdコマンドで移動するとか面倒になってしまうので一概に良いこととは言えないかもしれませんが・・・。