滅するまでの記録

滅するまでの記録

滅するまでの記録です

プログラミング学習日記 2025/12/21 HelixでGo開発環境を入れてCLIやらTUIのプログラムを書きたくなってくる

 MT5の検証が全然終わらん!ということで待ち時間を利用してプログラミング学習を続けようと。HelixというVim系のエディタを使ってみたいな、と。なんかGoと相性が良いということなので「数値計算」をやるのはまたしても延期しまして・・(Scilabって結構重たいし・・)

 GoのCLIライフゲームみたいなループ使ったプログラムが作れないかな?

 

 RustのCrosstermみたいなのが必要なのかと思ってたけど、特別なものは不要でループで延々と回すだけなら出来そうだ。そらそうか!キー入力がいらんからな・・いや、キー入力さえもGoroutineさえあれば出来そうか?

 

 おお・・なんか久々で盛り上がってきた。ゲームブックも序盤はAIに書いてもらって後半はデータばっかり作ってたからなぁ

 

 なるほど・・画面消去ってのがあるんですね。イメージでは左上から延々と1キャラずつ書き換えていく事で表現するかと思ったけど、全消去があるならそれに越したことは無いか。

 

 やっぱりGoroutineか。一度並行(並列?)処理はやらないといけないと思ってたので介入要素のあるライフゲームに一度挑戦するのは良さそう

 

 というわけでHelixを使ってGoの開発・実行環境を作る方法を聞いてみる。

 

 

 あ〜あったねこういうの。フォルダの中でターミナル開いてgo mod initで良かったかな?と思ってたけどその後にプロジェクト名みたいなの必要だったか

 

 あ、Helixから直接実行するとかではないのか

 

 分かりにくいけど、ちゃんとライフゲームになってます

 

 このままではただのエディタなのでGo用の設定ファイルみたいなのを用意することで、キーワードに色がついたりインデントが入ったり補完候補が表示されたり・・と便利になるらしい!(この導入が大問題だったのだが)

 

 なるほどねw Helixは編集に特化して別のターミナルで実行すると。

 

 上のようなGoの基本機能だけでループを使ったゲームっぽいものを作ったあとは(Crosstermみたいな)リッチなTUIライブラリを導入して面倒なGUIを使わずにそこそこ見栄えのするゲームを作るのも良いだろう?とのこと。それは実にイイ!そういうのが欲しかった

 

 そう言えばまだローグライクに挑戦してなかったじゃないか!

 

 特にこのTcellはクロスプラットフォームで豪華で、なのにTUIというのが・・イイ!しっかりと作っておけばそのうちTUIのプログラムをAIに渡して適当にGUIに変換してもらうことも出来るようになるだろうし

 

 放置したままになってる、メインルーチンは描画をさせつつ標準入力をGoroutineでやるとか、どうすんの?ってのも気になるし燃えてきたぜ

 

 シンプルな方のサンプル。いや、全然分からない

 

 よりリッチな方のサンプル。え?こっちの方が分かりやすいやん・・Tcellに全部集約されてて制御が分かりやすくて楽に出来そう(な、気がする)

 

 

 なるほどね。しかし知りたいのはライブラリを使わずに入力をどうやってGoroutineで処理するかってところですなぁ

 

 じゃあ早速MX-Linuxに入れたHelixでGoのLSP入れてライフゲームから始めるか!

 と、思ったところでLSP導入が全然上手く行かず、GPTとやり取りして試行錯誤すること4時間・・最終的に導入に成功した手順をまとめて記述させたのが

 これだったわけ!GPTが自信満々でやり方提案→うまく行かず・・ってのを何度も繰り返してようやくたどり着いたわけですわ〜。あ〜イライラした!途中、何度かVSCodeに戻るか?とかNeoVimだったら楽に始められるのか?とか心が揺れたけど、最終的にはなんとかなった。

・MXパッケージインストーラーを使ってのHelix導入ではVerが25.1.4のせいなのかLSPに必要なランタイムが入らない(フォルダさえ存在しない)

・Gitに置いてある最新版にも同梱されてない可能性がある(GPT談)

・結局確実にRuntimeが同梱されてる少し古いバージョンを公式から落として手動でPATHの通っている場所に配置する必要があった。

・Helixがもっと広まればパッケージインストーラーにもちゃんとしたものが用意されるのかも?本来はちょっと様子見するべきだったかも。でもVimキーバインドよりも合理的なんだもの!どうせ覚えるならこっちだろう〜

というわけでプログラミングは次回からということで