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

Helixエディタの使い方

2025年10月13日原文(rushter.com)

概要

Helixエディタをリモート開発で快適に使うための設定例と工夫を紹介。 tmux連携やキーバインドのカスタマイズでNeovimからの移行をスムーズに。 ファイル管理・Git操作・ステータスライン改善など実用的なTipsを解説。 Helixの設定例や便利なオプションも網羅。 他ユーザーの知見共有や質問も歓迎。

Helixとtmuxによる快適なリモート開発環境

  • Helix はプラグイン依存が少なく、 サプライチェーン攻撃 リスクを軽減できるエディタ

  • Neovim から移行する際、設定の発見が難しいため、実例を共有

  • tmux をターミナルマルチプレクサとして利用

    • ファイルマネージャやGit TUIがHelix単体では弱い
    • yazilazygit をtmuxのポップアップで起動し、操作性を補強
  • tmuxのカスタムキーバインド例

    • prefix-y: yaziファイルマネージャ起動
    • prefix-g: lazygit起動
    • prefix-e: Helixでtmux出力履歴を開く
  • tmuxのデフォルトプリフィックスはCtrl+bだが、Ctrl+\に変更

    • 長い出力のコピペや履歴検索が効率化
    • yazi/lazygitはHelixの上に重ねて起動

HelixのVimライクなキーバインドカスタマイズ

  • Helix独自のキーバインドに慣れてきたが、一部はVim風に移植
    • 行頭/行末移動、行全体選択、行末まで削除(Dモーション)など
  • 選択モードの動作がVimと異なるため、Vim風に調整
    • 1行上/下移動で行全体選択
  • ESCキーで複数カーソルをリセット(デフォルトはカンマ)
  • 行末までの削除もVim同様に簡単に

ステータスラインの情報強化

  • デフォルトのステータスラインは情報が不足
  • 現在の gitブランチ などを表示するようカスタマイズ
  • ステータスラインの左右に表示する情報を細かく設定

便利なカスタムキーバインド集

  • ファイルのリロード、ソフトラップ切替、Git操作などを一発で実行
  • 主なカスタムバインド例
    • space-e-w: バッファを保存
    • space-e-c: バッファを閉じる
    • space-e-x: 他のバッファを全て閉じる
    • space-e-l: inlayヒント表示切替
    • +f: ファイル整形
    • +w: 空白文字表示
    • space-f-r: 全ファイルリロード(自動リロード未対応のため必須)
    • space-f-x: Gitの変更を元に戻す
    • space-f-w: 現在行のGit blame表示
    • space-f-d: Git diff表示

Helixの主な設定例とオプション

  • 6ヶ月利用で便利なオプションを発見
  • 新機能はデフォルト無効が多いので要確認
  • 主な設定例
    • line-number = "relative": 相対行番号表示
    • mouse = true: マウス操作有効化
    • rulers = [120]: 120桁目に縦線ガイド
    • completion-replace = true: 補完時に単語全体を置換
    • color-modes = true: モード表示を色付きに
    • rainbow-brackets = true: 括弧に色付け
    • auto-save.focus-lost = true: フォーカスロスト時自動保存
    • auto-save.after-delay.enable = true: 一定時間後自動保存
    • editor.indent-guides.render = true: インデントガイド表示
  • 各オプションの効果や用途を簡潔に解説

LSP(Language Server Protocol)設定の工夫

  • 各言語で harper-ls を追加し、コメント内の文法エラーも検出

他ユーザーへの呼びかけ

  • HelixユーザーのさらなるTipsや工夫の共有を歓迎
  • 質問はフッター記載のメールアドレスでも受付

Hackerたちの意見

最近、エディタの設定を再構築するためのちょっとしたサイドクエストをやってるんだ。20年Emacsユーザーで、15年Vimユーザー(Emacsと並行して使ってるから、どっちが好きか決められないんだよね)。目標は、Pythonを主に使ったエンタープライズ向けソフトウェア作業のために、どれだけ早く日常的に使える完全なセットアップを整えられるかってこと。再構築の目的は、サードパーティの拡張機能にどれだけ依存せずに、必要な機能(または生産性を不合理に高める機能)を持てるかを見ることなんだ。今のところ、私のNeovimの設定は最高だと思うけど、思ったよりプラグインが多くなっちゃった。Emacsの再構築はまだ始めたばかりだけど、最近のEmacs(30以上)には、サードパーティのプラグインへの依存を劇的に減らす改善がたくさんあって、すごく興味深い。Eglotは、長年lsp-modeを使ってた私にとって素晴らしい存在だよ。補完プレビュー機能はcorfuの代わりにはならないけど、かなり良いし、これからもっと良くなると思う。今のところ、Emacsでの必須プラグインリストはこんな感じ: - Magit - Expreg(teeesitter expand region) - Multiple cursors - dape(Eglotと連携したデバッグ) たぶんConsultとorderlessも追加すると思う。あれは検索/ナビゲーションのスーパーパワーだからね。

それにしても、nvimのプラグインを維持するのは結構大変だね!先週、4つのプラグインでnvimを再構築したばかりなんだ(mini.nvimは1つとしてカウント)。プラグインをたくさん積み重ねると、nvimの安定性と信頼性がイライラするレベルまで落ちる気がする。Emacsなら2つのプラグインだけで済むっていうのが羨ましいな。たぶん、もっと安定して動くんだろうね。

新しいnvimは、必要なプラグインを少しずつ減らしてきてるよ。今は組み込みのプラグインマネージャー、diffビューワー、lspもあるし。

これはディスじゃないけど、数ヶ月使った後でも、Pycharm + IdeaVIMの初期設定と同じくらい良いと思う?もちろん、自分の設定を作る理由は他にもあるけど、「IDEは目的を達成するための手段」として見ると、Neovimの迷宮に入るのはちょっと時間の無駄な気がする。

Emacsを10年以上使ってる人の話にすごく興味があるんだけど、HelixやVimと比べてどうなんだろう?ゼロからHelixやVimを使い始めた人のレポートはいいって聞くけど、長く使わないとEmacsの素晴らしさは本当に理解できないと思うんだよね。でも最近はVimっぽいキーやモードが他のエディタにすごくうまく統合されてるから(例えばVSCodeにはいいEmacsモードがないし)、もうVimの勝ちってことを受け入れなきゃいけない時期かも。何度か試してみたけど、指が覚えるまで我慢できなかったし、エディタを叩き続ける理由が見つからなかった。だから、実際にハードコアなEmacsユーザーの切り替えについてのレポートがすごく気になる。

Expreg(teeesitter expand region)はcombobulateを思い出させる(試したことはないけど、かっこいいと思う)けど、もっと軽くて限られた感じがする。

ところで、Claude CodeのEmacs設定の上手さはすごいよね。実際、elispを書くのも得意だし。自分もlsp-modeからeglotに切り替えたけど、こっちの方がいい。壊れにくいし。

helixを使ってる人でTUIが欲しいなら、なんでこれをneovimより選ぶの? helixのデフォルトは好きだけど、時々変えたくなる。helixを使ってフルIDE体験がしたいなら、ZedやVSC/JetBrains IDEを使えばいいんじゃない?そういえば、fleetはどうなってるのかな。シンプルなものが必要な時はnvimに戻るし、機能が足りない時はWebStormを立ち上げることもあるよ(同僚が何かをナビゲートしたい時とか)。

その2つ目のポイントについてだけど、ターミナルを絶対に閉じたくない人がいるのは明らかだね。私もその一人かもしれない。:-D

個人的には、500行以上の設定を維持するのは好きじゃないな。プラグインもたくさんあるし、ゼロからneovimを設定するのはかなり面倒だよ。lazyvimみたいなものを使うと、50個のプラグインがセットアップされて、各gitリポジトリから最新のコミットを取ってくるだけで更新される。誰かがその50個のプラグインのうちの1つに悪意のあるものをデプロイするのは時間の問題だと思う。JetBrainsのIDEの言語サポートは素晴らしいけど、リモート開発にはあまり向いてない経験がある。複雑なリファクタリングをするために時々開くけど、Goland、RustRover、PyCharmを同時に開くのは本当に嫌だ。仕事で複数の言語を使ったモノレポがあるからね。

ここ数年、neovim、helix、emacs、nanoを日常的に使おうと頑張ってきた私としては、helixの初期設定が他のどれよりも圧倒的に良い体験だと思う。デフォルトがすごく良く選ばれてるし、コンテキストヘルプやヒントも、あまり使わないコマンドを使ったり思い出したりするのに役立つ。個人的には、helixのコマンドの順序がvimよりもずっと理解しやすいと感じた。私にとっては、現代のneovim/spacemacs体験の巨大なプラグイン/設定の壁が本当に嫌なんだ。拡張性や、プラグインがhelixではできないことを可能にしてくれるのは感謝してるけど(例えば、emacsはどんなlisp言語のIDEとしても機能するし、helixではreplを立ち上げられない)。でも、その問題はアプリケーション自体を学ぶ必要があるだけじゃなくて、たくさんのプラグインを学ばなきゃいけなくなることなんだ。みんなそれぞれ好みの組み合わせがあるから、プラグインでカバーされていることを調べると、しばしば互換性のない複数の回答に行き着くことになる。自分で設定をゼロから作ろうとすると(私もemacsでやったけど)、他の人のおすすめを信じることになるし、プラグインについて学ぶのに多くの時間を費やさなきゃいけなくなる。その時間は、自分がやりたいことに使えない時間なんだ。helixは新しいから、古い決定の遺産を背負ってないのが利点だね。その結果、helixは「現代」の期待に合った決定やデフォルトを作れる。完璧ではないけど、TUIに新しい人にとっては、現代的な便利さを持ったものを求めている時に、エディタの設定に数週間もかけたくないなら、始めるにはいい場所だと思う。

helixの素晴らしいデフォルトが本当に気に入ってる。20年間neovimを使ってきたけど、今でもすごく好きだよ。でも、いくつかのプラグインが壊れた後、helixを試してみたくなった。helixにはプラグインシステムがないのが残念だけど、私にとっては、ほぼ完璧な機能を持っていて、非常に反応が良いんだ。それに、マルチカーソルみたいな機能にも感謝するようになった。これまで試したことがなかったからね。いくつかのnvimのアウトオブボックスソリューションを試したけど、どれも気に入らなかった。zedも調べたけど、使う理由があまり見当たらない。試してみるべきかな。

Hacker Newsで議論の続きを見る