世界を動かす技術を、日本語で。

VS CodeからHelixへ

概要

  • VS Code から Helix への移行理由と背景
  • Helix の特徴や設定方法の解説
  • MarkdownやAstroなど 実用的な活用例 の紹介
  • Language Serverlinter の導入手順
  • エディタ選択における 思想と実践的な工夫

VS CodeからHelixへ:移行のきっかけと背景

  • VS Code は業界標準のエディタであり、 無料・使いやすさ・拡張性 が魅力
  • しかし Microsoft 製であり、依存リスクやプライバシー懸念が存在
  • オープンソース で国際的な開発体制のツールを志向
  • Helix は同僚の勧めで知ったが、最初は学習コストや再設定への不安から敬遠
  • 実際に使ってみると 直感的な操作性設定のシンプルさ に魅力を感じ、メインエディタに移行

Helixの特徴と操作感

  • vimneovim と異なり、Helixは デフォルトで多機能 かつ 統一感のある操作性
  • 設定やテーマは少数で、 どの環境でもほぼ同じ挙動 を実現
  • Language Server Protocol 対応で、言語ごとの補完や警告を自動化
  • テキスト選択後に操作を行う 視覚的な編集モデル が特徴
  • Vimからの移行も チュートリアルや直感的UI でスムーズ

Helix導入の障壁とその克服

  • vim はカスタマイズ性が高すぎて選択肢が多く、 選択麻痺 に陥りやすい
  • Helixは 「すぐ使える」 思想で、初期設定がほぼ不要
  • 最初の一歩は brew install helix で簡単インストール
  • 公式チュートリアルが 実践的かつ短時間で習得可能
  • Vimのキーバインド慣れもほとんど影響せず、 Helix独自の操作性 にすぐ順応

ドキュメントと学習リソース

  • 公式ドキュメント は充実しているが、初心者にはやや難解
  • サードパーティのドキュメント が実用的かつ読みやすい
  • Astro Starlightなどを活用した わかりやすい情報設計

MarkdownとAstroの活用・設定例

  • 主な用途は Markdownでのノート作成Astroでのサイト編集Kubernetes用yaml操作
  • Helixは Language Server を通じてファイル内容を理解し、 補完・警告・ナビゲーション を実現
  • コードフォーマッタも導入可能で、 統一感あるスタイル維持

Markdown環境の最適化

  • marksman (Language Server)をbrewでインストールし、Helixと連携
  • Harper (Automattic製の英語用文法チェッカー)も導入可能
  • 設定ファイル(~/.config/helix/languages.toml)で複数Language Serverを指定
  • rumdl (高速Markdown linter)もbrewで簡単導入
  • 既存の.markdownlint.yamlを rumdl形式に変換 可能
  • 80文字のソフトラップ 設定で可読性向上
  • Helixはエディタの中央揃え非対応だが、 左ガターにスペース追加 で擬似的に中央寄せ
    • 端末サイズに合わせて 計算式でスペース数調整
    • config.tomlにキーバインドを追加して ワンタッチ切替 可能

Astroの設定

  • VS Code 同様、Astro公式Language ServerやTypeScriptプラグインを活用
  • Helixでも 補完・シンタックスハイライト が有効

エディタ選択における思想と今後

  • 自動化・利便性 の裏にある 依存リスク への警戒
  • 国や企業単位でなく、 国際的なオープンソース開発 を重視
  • 使い勝手・学習コスト・思想的バランス を考慮したエディタ選び
  • Helixのようなツールが 新たな選択肢 となる可能性

このように、VS CodeからHelixへの移行は 思想的背景実用的な工夫 が両立した選択となった。エディタ選びは単なる好みではなく、 生産性・透明性・自由度 を左右する重要な判断基準である。

Hackerたちの意見

Helixとか新しいエディタ(kakouneも思い浮かぶけど)は、vimよりも直感的な編集方法があるように感じて、ずっと魅力的だったんだ。でも、vimがどこにでもあるから、切り替えるのは無理かな。ほとんどのシステムにはデフォルトでvim(またはvi)がインストールされてるし、ほとんどのIDEやエディタはvimのキーバインドをネイティブでサポートしてるか、ちゃんとしたプラグインがあるからね。同じような問題がキーボードレイアウトにもあって、dvorakやcolemakでちょっと速くなるかもしれないけど、どこに行ってもqwertyが使える便利さには勝てないよ。

これがHelixを真剣に試すのを妨げてるんだ。viっぽいキーバインドを覚えたくないし、筋肉記憶を混乱させたくないんだよね。

これは典型的な切り替えコストの問題だね。切り替える価値があるためには、努力がある閾値以下であるか、結果がかなり良くないと人は切り替えない。つまり、キラーフィーチャーが必要なんだ。

「dvorakやcolemakでちょっと速くなるかもしれないけど、どこに行ってもqwertyが使える便利さには勝てない。」コールマックやドボラックは速さじゃなくて、快適さとRSIを避けるためのものだよ(実際のレイアウトはリストのかなり下の方に位置づけるけど、適切なエルゴノミクスのキーボードが最優先)。それに、約8年間コールマックを使ってきたけど、アクセスできないことが問題になったことは一度もない。人のコンピュータで本を書くわけじゃないし、もしそうなったとしても、慣れてないキーボードで目を閉じて打つのは無理な試みだよ。

「dvorakやcolemakでちょっと速くなるかもしれない」スピードはほぼ同じだよ。コールマックの大きな利点は、長時間のタイピングセッションの後に手や腕が痛くならなかったこと。エルゴノミクスや反復動作障害を避けることが、互換性よりも重要なんだ(とはいえ、今は遅くてもqwertyでも打てるけどね)。

20代でQwertyからDvorakに変えて、30代でVimからHelixに移行したんだ。どちらの移行も最初の数週間は大変だったけど、正直思ったほど難しくなかった。どちらの選択も僕を10倍の開発者にはしてくれなかったけど、問題を引き起こすこともなかった。自分がコントロールできないシステムに多くの時間を費やしてる?Dvorakは他の人が僕のキーボードを使うのを遠慮させるから、正直それが逆方向に行けるよりも価値があるんだ。

どこに行ってもqwertyにアクセスできる便利さには勝てないよね。(キーボードレイアウトは他のマシンで直すのが難しいから、あんまり関係ないけど)でも、自分のキーボードやエディタ設定を使って、1%の不便さで済むのは、健康に悪い使い方を100%するより全然いいよね。 > ちゃんとメンテされてるプラグインを使えば、vimの設定を読み込んで、より良いキーバインドを維持できるよね?

「dvorak/colemakでちょっと速くなることを学べると思う。」 俺が見る限り、レイアウトに関係なく人々はだいたい同じ速度でタイピングしてると思う。もし速く打つことを目指してるなら、違いが出るかもしれないけど、あまり変わらないと思うよ。俺はエルゴキーボードでアルファサムレイアウト(Hands Down Vibranium、Rキーは左の親指の下)で打ってる。これは、安いボールペンと高級万年筆、あるいはメカニカルキーボードとメンブレンキーボードの違いみたいなもんだ。体験は良いけど、根本的にプロセスが違うわけじゃない。変わったセットアップを使ってるから、「もしキーボードが壊れたらどうしよう」とか「公共のコンピュータを使う時はどうする」とか心配してたけど、結局はqwertyを忘れないことが解決策だよ。俺は毎日、コメントみたいな短いことをするためにノートパソコンのキーボードを使ってるけど、それで全然問題ない。俺のセットアップのおかげで、腕を椅子のアームレストに置いて、手首をニュートラルな位置に保てるし、筋肉を使わずに済むんだ。効率的なレイアウトと小さいキーボードのおかげで、手を動かす必要もない。だから、12時間後も手首の位置は最初と同じで、それがストレスによる怪我の回復を助けてるんだ。

「どこに行ってもqwertyにアクセスできるのが保証されている。」 君はあまり遠くに旅行してないみたいだね。

切り替えが必要な人には向いてないのかも。俺にとっては初めてのこういうエディタだから、何かと戦う必要はないんだ。

僕も似たような経験があって、neovimに関しては(著者と同じ理由で、大手テック企業に対する不安から)何度か切り替えようとしたけど、特定のプロジェクトを通じて頑張って使い続けたら、今では自然に使えるようになったよ。イライラしたり、VSCodeの方が早いと思った時には、(n)vimのやり方を調べるのが役立った。新しいコマンドを何回か使って記憶に定着させたんだ。今のところ、検索と置換だけがvimではCodeほど使いやすくないかな。僕がやってるのは、検索フレーズを視覚的にハイライトして、アスタリスクを押してから:%s//replacedってやること。これで検索パターンを省略できるって学んだよ。とにかく、nvimもhelixも素晴らしいし、ターミナルエディタはクールでセクシーだから、使わない理由がないよね? ;)

うわ、検索パターンを省略するっていうヒントを知らなかった!めっちゃいいね、これからたくさん使うわ!お礼に、僕が学んだ検索/置換のやり方を教えるね、ちょっと違った味付けを楽しんで:アスタリスク、cgn([c]hange [g]o [n]ext)、置き換えたものをタイプして、.(ピリオド、繰り返すため)で終わるまで続ける。

「マイクロソフトもアメリカに本社があって、あちらの政治的な状況からできるだけアメリカのツールに依存したくない。」それは長い道のりだけど、どこかで始めないとね。スタルマンみたいな過激だけどもっと面白い熱心な人たちがいた頃が懐かしい。彼の行動について何を言っても、スタルマンは本気だった。そして、そのクレイジーさが面白さに繋がってた。今は、なんかこういうのしかないよね。基本的には、誰かが「チキンウィングの先端を食べないことでベジタリアンになろうとする」みたいな感じ。おい、VSCodeをフォークして、自分のカスタムVCシステムでホスティングしろよ。抵抗の背後にある情熱はどこに行ったんだ?

これが「抵抗」の行動に入るかはわからないけど、どちらにしてもその価値は手間の量には依存しないよね。

最近「GNU/Linux」の名前のことを知って、めっちゃ面白かった! https://www.gnu.org/gnu/gnu-linux-faq.en.html

抵抗の背後にある情熱や火はどこにあるの?労働者階級は疲れ果てていて、給料一つで家を失う危機にある。人々はプライバシーや主権のために戦う時間もエネルギーもないんだ。スタールマンは恵まれた環境で育ち、最高の時期に最高の大学に通い、学問の世界で働いていた。彼は政治的な活動に時間を捧げる余裕があったんだ。

僕はほとんどの開発をJetBrainsのIDE(Rust、Python、Kotlin)でやってる。個人的には、コードの洞察や修正提案(「ここをクリックしてそれをやる」も含めて)が抜群だと思う。でも、リソースをめちゃくちゃ消費するし、彼らの最高の機能がずっと無料であるとは信じられない。neovimに何度か挑戦したけど、基本的な編集には問題ないし、グラフィカルな環境がないボックスにSSHで入った時や、フルIDEを起動するのが面倒な時に使ってる。でも、UIはJetBrainsよりも直感的じゃない気がするし、JetBrainsの機能に近づけるためにいろんなプラグインをインストールして設定する頃には、全体のセットアップがすごく脆弱に感じる。いつ壊れるかわからないし、簡単には修正できない気がする。そういう点で、Helixがもっと多くの機能を最初から持っているのは、確実に改善になるかもしれないね。

ジェットブレインズのツール使ってるけど、ちょっと前に使うのやめたんだ。動作が遅いからね。エディタのインターフェースは絶対にフリーズしちゃダメだし、フォーカスを要求するポップアップもいらない。IntelliJもVS Codeもこれやっちゃうんだよね。今はVS Codeに戻ってるけど、Sublime Textがもう更新されてないから(2014年か2016年からエコシステムがほぼ休止状態)、Zedはまだ開発中で、時々使う拡張機能やツールがないんだ。もしJavaに戻ることがあったら、IntelliJをまた使うかもだけど、そうなると、僕の働いてる企業がその費用を出さなきゃいけないんだよね。

ジェットブレインズのIDEを11年間使ってる。前はEmacsとSublime Textを使ってた。VSCodeやZed、他のも試したけど、コードのインサイトや操作ツールは比べ物にならない。LSPはジェットブレインズに比べて遅れをとってるけど、最近は少しずつ追いついてきてる。時々Zigなどの他の言語のためにVSCodeも使うけど、動作が遅くなったことはないよ。ただ、メモリの使用量を把握して、低くならないように気をつけてる。明らかにリソースを大量に使うけど、それも嬉しい。コードを素晴らしい方法で分析してくれて、開発を早く進める手助けをしてくれるからね。EmacsやSublime Textはタイピング速度重視だったけど、早い開発は単なるタイピング速度を超えてるんだ。

でも、彼らは絶対にリソースを食い尽くすし、彼ら(またはその最高の機能)がずっと無料であるとは信じられない。私は様々な用途で彼らのIDEをいくつか使っていて(Java、.NET、Python、Go、JSプロジェクトやDBのやり取りなど)、結局彼らのアルティメットパックを買っちゃった。個人使用だと、年間360ユーロ(VAT込み)で、3年目には216ユーロに下がった。人工的な制限に悩まされず、すべてのツールを使えるようにするためにね。IntelliJにいろんなプラグインをインストールするフランケンシュタイン的なセットアップは避けたかったから。彼らのAIツールも結構良いよ(Junieは使いやすかったけど、レート制限があった)。無料のFleetエディタのアイデアもクールだったけど、VSCに比べるとちょっと残念だった。とはいえ、もしJetBrainsのIDEがクソ化したら、ゴミ箱に捨てて、プラグインとAIでごちゃごちゃにしたVSCに移行するつもり。そうなるまでは、MobaXTermやFreeFileSyncにお金を払うのと同じように、彼らのソフトにお金を払うのは全然問題ない。要するに、私は彼らを商業製品として見ていて、あまり無料であることを期待していないってこと。

25年前、無邪気な私は、最終的にテキストエディタをIDEのような他のアプリケーションのコンポーネントとして使えるようになると思ってた。IDEとエディタが一緒に動くためのプロトコルが進化するだろうって。ブラウザのすべてのテキストボックスが好きなエディタになる同じプロトコルがね。LSPはずっと実用的だけど、私が期待していたほどではない。

10年間使ってたけど、今はHelixを使ってて、たまにJetBrainsのツールを開いてリファクタリングをしてる。GoとPythonで作業してるから、二つのIDEを開くのが嫌なんだ。それに、IDEは速くなるどころか、どんどん遅くなってるし。

Helixを数日使ってみたけど、ほとんどの部分で気に入ったよ。ただ、VS Codeで無意識にやってる簡単なことがHelixではコマンドがわからなくて困ることがあった。調べて「お、効率的だな」と思って次に進むんだけど、これが何度も続いて、最終的には急いでる時にHelixでどうやるか調べる時間がなくて、結局戻っちゃったんだ。それ以来戻ってないけど、これは機能の問題じゃなくて、学習曲線の問題だった。いつかまた戻るかも(年末の忙しさが落ち着いたら探る時間ができるし)けど、今はVS Codeで快適にやってるよ。

僕は怠け者だから、VS Codeのショートカットを調べることなんてしなかった。Helixの学習曲線がちょっと急だから、移動を楽にするショートカットを覚えなきゃいけない。でもこれおかしいよね。本当に怠け者なら、もっと複雑なアプリを学ぶために努力なんてしないはずだし、ただ切り替えないだけだよ! > ちょっとした好みに合わせるためのノブがいくつかある。選択麻痺に陥りやすいから、編集を始める前にエディタを設定させるのは生産性を下げる最悪の方法なんだ。オプションが数百もあって https://docs.helix-editor.com/editor.html、さらに数百のキーバインドがあって https://docs.helix-editor.com/keymap.html、Helixで自分を死ぬほど調整することもできるし、他の設定可能なアプリと同じようにね。出る方法はVimと同じで、誰かがやって結果を公開するのを見つけて、それを使えばいいんだ!

そして、脱出方法はvimと同じで、やったことのある誰かを選ぶだけだと思う。ここで重要なのは、ほとんどの人がそれをやらないってこと。なぜなら、箱から出したままでも動くから。キーバインディングや数百の設定を変更することもできるけど、デフォルトが良いから、特に変更する必要はない。私のhelix設定はテーマとソフトラップを設定するだけで、それで十分なんだ。

Emacs(18.52から)とNeovim、そして今はHelixを長いこと使っているけど、君の最後の主張は間違ってると思う。確かに選択肢はたくさんあるけど(EmacsやNeovimほどではないけど)、Helixではコードを書いたり、他の人のコードをインストールしてエディタを改造することはできない。昔はNeovimやEmacsのために、いろんなパッケージを試したり、統合したり、デバッグしたりするのにかなりの時間を費やしてたけど、Helixでは新しいオプション設定を試すことはあっても、他のエディタをカスタマイズするのにかかる時間に比べたらほんのわずかだよ。

ここでの議論がよくわからないな。「vimはプラグインをインストールしないと使えないから嫌い」って言ってるのに、「helixはバカなエディタだから、言語サーバーが必要」って言ってる。で、インストールしたプラグインの数を挙げてるし。これって、彼らの主張に反してるように思える。今はほとんどVScodeを使ってるけど、私にとっては豪華なVIMのバリエーションみたいなもんだ。vimのバインディングに慣れすぎてるからね。生のvimも使えるけど、最近は真剣なプログラミングには使ってないな。もし使うなら、syntasticをインストールして、もう少し高度なリンターも入れるかも。でも!彼らが幸せなら、それは良いことだね™。

その議論は意味不明だけど、俺も全く同じ道を辿ったよ。俺にとって、Helixは最初から使うのが本当に楽しいから、自分好みに調整するモチベーションが湧いたんだ。

Helixは、ただ速くて邪魔にならないものが欲しいなら最高だよ。プラグインや統合、他の魔法みたいなものが欲しいなら、たぶん合わないと思う。私は過去10年間Vimを使ってきたけど、それが自分の脳の働きに合ってるから。Helixはその精神を受け継いでるけど、リフレッシュして、長年のデザインの決定を捨てたからこその洗練さと親しみやすさがある。Helixは素晴らしいターミナルベースのエディタだよ。GUIエディタを使うくらいなら、ミトンをはめてタイピングしたい。もしそれが響くなら、試してみて。GUIが好きなら、Helixがあなたの考えを変えることはないと思う。

「Helixは“バカ”なテキストエディタだ。君が何を打っているかあまり知らない。」 でも、Language Server Protocolを実装したLanguage Serversをサポートしてるよね。それを考えると、VS Codeも“バカ”なエディタじゃない?

helixのおかげで、今はすべてのRustプロジェクトが失敗する運命だと思うようになった。