気になっていたエディタがいつの間にやらwindows10でも使えるようになっていたので紹介する
個人的にはzellijも早くwindowsで使えれば良いなあと思っている
参考資料: GitHub(Issues, Discussions, Wiki), Documentations, Website
アップデートされたバージョン22.81も情報もある
? 注意点(執筆時期2022/4/29) version22.03
まだHelixは鋭意開発中なので変更が多くあります
ここに書いていることが上手く機能しないことがあります
Summary
Rust製の標準機能が豊富な軽く速いテキストエディタ
ターミナルと(一応)GUIの両方がある
kakoune(コクーン)/neovimの二つから影響を受けている
特に開発者がkakouneの強い影響を受けている
キーマップやポップアップがわかりやすい特徴として挙げられる
操作している感じはウェブサイトの動画が分かりやすい
多くの言語でLSPによる補完やtree-sitterによるシンタックスハイライトなどなどサポートしている
プラグイン用のAPIなどまだ実装段階で,プラグイン自体がない
独特な操作感で好みが分かれる
vimに慣れていればいるほど使いにくいかもしれない
個人的な感想としては,vim/neovimの代用にはならない
ただし,軽量で高速,取り出してすぐ使えるので一瞬だけターミナルで起動するときにはこれで十分な感じになる
Q.「ならvim/neovimで良くない?」
A.「そのその通りです」
What Is This?
A post-modern text editor.
A kakoune / neovim inspired editor, written in Rust.
The editing model is very heavily based on kakoune; during development I found myself agreeing with most of kakoune’s design decisions.
kakoune(コクーン)とneovimに影響を受けたRustで書かれたテキストエディタ
-
- vimみたいなモードがあるエディタ
-
- 複数のカーソル選択編集機能
-
- 組み込みで言語サーバーサポート
- 複数言語のシンタックスハイライトやテキストオブジェクトサポート
How to Install
Windowsならreleasesページからダウンロードする
次に解凍した中にあるruntimeをhelixのフォルダにコピーする
xcopy runtime %AppData%/helix/runtime
MacOSならhomebrewでインストールできる
brew tap helix-editor/helix
brew install helix
その他はGitHubやドキュメントを参照する
きちんとインストールできたかどうかはhx -Vやhx -hで確認できる
また,hx —health (lang_name)で利用できるLSPなどのリストが表示される
> hx --health rust
Configured language server: rust-analyzer
Binary for language server: ..\rust-analyzer.EXE
Configured debug adapter: lldb-vscode
Binary for debug adapter: Not found in $PATH
Highlight queries: Found
Textobject queries: Found
Indent queries: Found
基本的には他のエディタと同じ
hx file_name # ファイルを開く
hx file01 file02 # 複数ファイルを開く
hx dir_name # ディレクトリを直接開く
hx . # 現在いるディレクトリを開く
Settings
設定したければconfig.tomlを開いてすぐに設定できる
:config-openで設定ファイルを開ける
helixを起動した状態で:を押すとコマンドモードになる
このモードでは利用できるコマンドの一覧が表示される
コマンドモードではtabで次へ,shift+tabで前へ移動できる(上に説明が書いてあるのは地味にうれしい)
:config-reloadで設定ファイルをリロードできる
:theme theme_nameでテーマを試せる(私のテーマはOnedark)
Wiki Themesでも探せる
とりあえずは以下内容をconfig.tomlで保存して,これを~/.config/helix/か~/AppData/Roaming/helix/に配置するだけで良い
# 任意のテーマ
theme = "onedark"
[key.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[keys.insert]
j = { j = "normal_mode"} # jjでノーマルモードへ戻る
# C: Ctrl, S: Shift, A: Alt それぞれの接頭辞
# "C-c" = "normal_mode" # Ctrl-cでノーマルモードへ戻る
他にもhx —healthにあるようにLSPやtree-sitterの設定もできる
デフォルトではシンタックスハイライトのみでLSPは個人で設定する
GitHubにあるlanguages.tomlの中から必要な言語をコピーして貼り付けるだけで良い
もちろんLSPなどの設定は自分で行う必要がある
そもそも,まだLSPなどが実装されてなけれは使えないのでそこは注意する
これも~/.config/helix/か~/AppData/Roaming/helix/に配置するだけで良い
[[language]]
name = "rust"
scope = "source.rust"
injection-regex = "rust"
file-types = ["rs"]
roots = ["Cargo.toml", "Cargo.lock"]
auto-format = true
comment-token = "//"
language-server = { command = "rust-analyzer" }
indent = { tab-width = 4, unit = " " }
[[grammar]]
name = "rust"
source = { git = "https://github.com/tree-sitter/tree-sitter-rust", rev = "a360da0a29a19c281d08295a35ecd0544d2da211" }
現在進行形で未対応のLSPやtree-sitterのissueは上がっているのでmasterを追跡すれば使えるようになっている可能性もある
Favorite Points for Me
デフォルト機能が多く,取り出してすぐ利用できる
GUIもあるのでターミナルを起動などの手間が省いてぱっと使える
キー操作で情報がポップアップするので初心者にやさしい
vim/neovimの経験がある人は割と楽に操作できる
kakouneは使ったことがないので良い判断材料にはならないがキーマップが覚えやすい(人による)
押しやすかったりわかりやすいのではなく一貫性がある(議論の余地あり)
vim/neovimなどの代替ではなく補助的利用なら問題は少ない
エディタが育つのを眺めるのが面白い
Bad Points
プラグインまだ作れない
プラグイン用のAPIなど実装予定はあるが当分はない
キーマップが冗長な箇所がありこれらはまだ議論中で再度変更が行われる可能性がある
インサートモードの矢印キーの移動が消されて,それがrevertされたりした
ディスカッションなどを見るのが楽しい
configでマッピングをしてもまだ意図した挙動になりにくい
これもmasterを追っていたら部分的にはできるようになっていたりする
恐らくもう大丈夫
マクロや.(ドット)の挙動が気に入らない
試験的であったり,そもそも機能が違うのでなれるしかない
修正された
Conclusion
エディタ自体は基礎が既に出来上がっているので補助的に使う分には申し分ない
まだかゆいところに届きそうで届かないもどかしさがある
多くの人にはまだneovim/vimの代用にはならないなりそうになってきた
楽しむ分にはちょうど良いかもしれない
モード操作編
第二弾