開発環境を Alacritty + neovim + tmux にしてみた
タイトルの通り、ターミナルを Alacritty 、エディタ を Neovim にしてみた。ターミナルの分割のために tmux も入れたよ。
これまでは WSL に繋ぐのも構築もターミナルでのあれこれも、そして Claude Code も、すべて VSCode で対応していた。
あれはあれで本当に素晴らしいのだが、開発環境が爆速になった!
今回入れたのは、この3つ!
なお、入れた順番としては、Neovim -> Alacritty -> tmux 。
Neovim は別にターミナルなら何でもいいので、はじめは VSCode 内のターミナルで Neovim を開いてコマンドを練習、わからなくなったら VSCode で普通に開発することで、案件対応のスピードを落とさずに勉強した。
その後、VSCode 内じゃなくてもいいかも? というタイミングで Alacritty を知って入れてみた、という流れ。
Alacritty
爆速ターミナル。
私は今までターミナルに関しては git を入れたときについてきた git bash でええやろ! みたいなノリでいたのだが、なんとなく今回目についた Alacritty を入れてみることにした。
windows 側にインストール。
入れた設定
alacritty.toml という設定ファイルに設定を書く。
.toml っていう拡張子は初めましてだったが、[] で何についての設定か書いて、その下にオプションなどを書くという非常にシンプルな構造のため、なんとなくどういうことかわかった。
こんな感じだ。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# シェルに関する設定 [terminal.shell] program = "wsl.exe" args = ["--distribution", "Ubuntu", "--cd", "~", "--", "tmux", "new-session", "-A", "-s", "main"] # フォント指定 [font.normal] family = "HackGen Console NF" # キーバインド指定 [[keyboard.bindings]] key = "C" mods = "Control|Shift" action = "Copy" [[keyboard.bindings]] key = "V" mods = "Control|Shift" action = "Paste" ---または [keyboard] bindings = [ { key = "C", mods = "Control|Shift", action = "Copy" }, { key = "V", mods = "Control|Shift", action = "Paste" } ] |
シェルに関する設定では、立ち上げたときに WSL に繋ぎ、cd ~ をし、tmux(後述)を立ち上げている。tmux は、前回の画面を表示、という引数も入れている。
これを書いておけば、Alacritty を立ち上げたときに必ず打つコマンドを自動で打ってくれる。
ちなみに AI に書いてもらった。
フォントについては、白源コンソールNFというフォントを指定した。漢字が白源で英語表記が HackGen なの好き。大暮維人/Oh! Great みたいなやつね。
NF こと Nerd Fonts は開発者向けのアイコンが含まれるフォントだ。後述する Neovim でも多用されているので、Neovim を使う際は Nerd Fonts を入れると Good。
あとは ctrl + shift + c/v でコピペできるショートカットキーをキーバインドした。
キーバインドについては2パターン書いているが、どちらも大丈夫なの面白い。
Neovim
爆速 vim エディタ。
会社に、ツール系の話をキャッキャする先輩がいるのだが、その先輩が最近 Neovim 育ててるんだ~と話してくれたので「ほーん?」と触ってみた。そしたらめちゃくちゃ楽しくなっちゃった。
WSL 側にインストール。
プラグインを紹介
- Lazy:プラグイン管理プラグイン。使うときだけプラグインを動かしてくれるので軽くて済む。
- Telescope:超有名横断検索プラグイン。横断検索だけかと思いきやブランチ一覧とかも見れる。
- grug-far:telescope で置換もできるらしいのだがなんか大変だったので入れた。
- nvim-tree:ファイルツリー表示。
- lazygit:git の GUI 。ちょっとコマンド多すぎてまだ使いこなせてない。普通に git コマンド打った方がまだ早いかも。
- lualine:ステータスライン表示。モードの表示がとても助かる。
- git-blame:誰が最新コミットしたかを表示する。lualine のなかで使っている。
- conform:フォーマッタをいろいろ指定できる。
- which-key:vim のショートカットキーがわからない民向け、キーのサジェストを出してくれる。とても助かる。
- wilder::を打ってからのコマンドのサジェストを出してくれる。とても助かる。
nvim-tree や lualine で Nerd Fonts に含まれるアイコンが使われているため、 NF を入れないと Tohu になる。
その他、キーバインドで分割された場合の移動を tmux(後述)と合わせている。
実際の開発時には 一つの Alacritty のウィンドウを tmux で分割し、さらにその中で Neovim で分割された画面が混在することになるが、キーバインドを tmux, neovim で合わせているためシームレスな移動ができる。
tmux
Alacritty は画面の分割ができないので、こちらを導入。
VSCode の Ctrl + @ で開いたターミナルは普通に何も入れずめちゃくちゃ分割できてたので、普通にできるもんだと思って Claude ちゃんに Alacritty の分割ってどうやるの? って聞いたらできねーよと言われ、入れることになった。
WSL 側にインストール。
tmuxの設定
ほとんど使わないのに tmux のステータスバーがずっと表示されるのがちょっと邪魔だったので、デフォルトを非表示にする設定を入れた。
|
1 2 3 4 |
# ステータスバー(デフォルト非表示、Ctrl+b を押している間だけ表示) set -g status off bind-key -T root C-b { set -g status on; send-prefix } bind-key -T prefix C-b set -g status off |
他には分割した画面の移動を Ctrl + 各キーでできるようにしたり、分割した画面のサイズ調整を Alt + 各キーでできるようにしているが、そこは結構特殊なため省いた。
余談だが、私のキーボードは矢印キーがないため、vim 関係なく矢印が Fn + i/j/k/l で上/左/下/右となっていて、vim で使われる方向キー j/h/k/l との相性がめちゃくちゃ悪い。l以外大混乱になるため、その他の上下左右のキーバインドもすべてキーボードに合わせて微妙に変えている状態なので人に勧められないのである……!
最後に、Claude Code すげぇ
これらのインストールや設定は Claude Code に丸投げして、ときどきパスワードが必要な時に sudo 系のコマンドを指示通りに実行しただけでできた。
全部やってくれて導入コストがめちゃ低だったので、導入コストで触ってみるのを迷っている人にはかなりおすすめ。
爆速×爆速で、かなりサクサクな気がする。
vim の独特なコマンドに慣れたらかなり早くなりそうなので、早く慣れるように使っていきたい。
あと冒頭にさらっと書いたけど、コマンドを覚えるまで VSCode 内のターミナルで Neovim を使ってみるのおすすめ!