メインコンテンツへスキップ

テキストエディタの乗り換えを検討する neovimからHelixへ

··2534 文字·6 分·
ソフトウェア テキストエディタ
著者
gf
目次

neovimがぶっ壊れた
#

Rustを久しぶりに書くことになり、neovim1.rsファイルを開いたのだが、前回は動作していた補完やlintが動作しなくなっていた。

Lazyというneovimのプラグインマネージャーを使っていたことを思い出し、LazyのUIから関連するプラグインをアップデートしたが、breaking change2によって完全にぶっ壊れてしまった。

リリースノートを探して読んだら移行方法の説明とサンプルのコンフィグが置いてあったが、neovimのコンフィグの記法や構成やどのようなプラグインで環境が実現されていたかなどを全て綺麗に忘れ去っていたので、手をつけるのが面倒な上に難しかった。

ダウングレードしてとりあえず動くようにしようと一瞬考えたが、良い機会だと思い、別のエディタへの乗り換えを検討することにした。

今直ったとしても、いつまたbreaking changeが降ってくるか分からない。
vim, neovimは単純なテキスト編集であればそれだけで完結するが、あったほうが良い機能を揃えようと思うとプラグインを入れまくることになる。
プラグイン地獄だ。

今回、コードを書こうと思ったら環境がぶっ壊れていたのには、自分でも驚いたが相当なストレスを感じた。

neovimを導入しようとしたとき、え? おれこんなにプラグイン入れないといけないの? 管理できんのかこれ? と考えて、もっと必要な機能が統合された エディタを探したが、名前を忘れてしまった開発資源がイマイチなプロジェクトしかみつからなくてneovimにした。

エディタに関する最近の自分の好みとしては、エディタには各プログラミング言語のコード補完、lint、ファイルツリー(or ファジー検索)がビルトインされていたほうがありがたい。

確かに、neovimのようにプラグインで色々と拡張できるのは自由を感じるが、それ故に環境が複雑になってしまう。
シンプルなものならviやnanoが既にある。

neovimの設定はよく分からんものをよく分からないまま書くような状態だったので、管理から開放されたい。 プラグインが10個もあったらいちいちドキュメントなんて読んでられねえ。

neovimは嫌いではない、むしろ満足していたが、自分にはプラグインを管理しきれない。

Lapce
#

というわけで色々検索していたら、Lapce(🔗https://lap.dev/lapce/)とHelix(🔗https://helix-editor.com/)を発見した。
Lapceは自分の要求を満たさなかった。

  • オープンソースだが、金儲けが関連している
    🔗https://lap.dev/pricing/
    これがエディタが機能するのに必要かどうかの問題ではなく、金儲けが絡んだプロジェクトはオープンソースであっても悪いことが起こりやすいと思うので。
    金儲けが頓挫して開発が停止する。
    金儲けへの配慮で意思決定が行われる。
    など。
    後は自分の個人的な姿勢だ。
  • GUIなのでターミナルから使えない
    ranger(🔗https://ranger.fm/)というターミナル上で使えるファイルマネージャーと組み合わせて使いたいので。

Helix
#

Helixのほうは見た感じ金儲けの色もないし、自分の必要な機能がビルトインされている。

vimのような操作性とgithubの方に書かれていたのでまあやってみるかと思いインストールした。

設定も最小限でとりあえず好みの見た目になったので文句はない。

コード補完の設定、環境構築もドキュメントを読んだ限りまあ許容範囲内の作業だ。
lsp serverを自分でインストールする感じ。

ちなみに、この記事は早速Helixで書いている。

黒背景に赤色が一番目が疲れにくいと感じるので、なんでもそうしている。
base16_default というHelixのthemeを適用したら、ターミナルの色設定がほぼそのまま使われたので画像のような見た目になった。

ファイル名を検索してファイル選択したり、

ディレクトリ下の全てのファイル内容を検索して、ファイル選択することができる。

neovimでもpluginで実現できるが、やっぱビルトインで欲しいんだわ。

vimと比べた操作性
#

vimとは違う点が結構多い。 h, j, k, l, i,:w, :qなどはそのまま。

今の所判明している違いは

  • ddで行を消せない。 -> xd
  • xで文字を消せない。 -> d
  • Shift + g でファイルの末尾へ移動できない。 -> ge

などだ。

コマンドによってはヘルプが出てくるので、それで学習することもできる。

まあhx --tutorvimtutorみたいなチュートリアルがあるので、暇なときに少しずつそれを進めていこうと思う。

おわり
#

あるとしたら、単語移動、選択でCJK3に対応してほしい4ぐらいか。

慣れないがまあ今の所それ以外の文句はない。

vim自体最低限の操作以外使いこなせていなかったので、逆に乗り換えやすいかもしれない。

viやvimを使わないといけない状況になったときに頭がバグりそうという不安はあるが、複雑な管理から開放されるのであれば俺は受け入れる。
俺が管理したいのは女の子だけだ。

君も今日からHelixで管理から解放されてみないか?


  1. 🔗https://neovim.io/
    neovimはEmacs(🔗https://www.gnu.org/software/emacs/)と並んで有名なテキストエディタvim(🔗https://www.vim.org/)の派生。 ↩︎

  2. 破壊的変更: 🔗https://monobook.org/wiki/%E7%A0%B4%E5%A3%8A%E7%9A%84%E5%A4%89%E6%9B%B4
    エラーが出て動作しなくなった。 ↩︎

  3. CJK: 🔗https://www.weblio.jp/content/CJK ↩︎

  4. これぐらいか? 🔗https://github.com/helix-editor/helix/pull/12160#discussion_r2061952984
    CJKはトークナイズに関してはまじで欠陥言語。 ↩︎

関連記事

VSCodeの代替: 情報収集されないVSCodium
··919 文字·2 分
ソフトウェア VSCode VSCodium テキストエディタ
[Linux] k3bを利用してCD, DVD, BDをリッピング、コピー、取り込みする方法
··1045 文字·3 分
ソフトウェア Linux CD DVD BD Linux k3b KDE
語学本の付属CDをPC上でディスクドライブを稼働させずに再生したいので。
90年代を彷彿とさせるUnixライクなレトロ風OS、SerenityOSを試してみた
··2013 文字·5 分
ソフトウェア SerenityOS OS レトロ Unix
あの頃の記憶が蘇る…。