Alacritty とは
Alacritty(アラクリッティ) は、macOS や Windows の「ターミナル」アプリの代わりに使えるターミナルエミュレーターで、次のような特徴を持っています。
- Windows/macOS/Linux/BSD など主要な OS をサポート(ノウハウや設定を使いまわせる)
- Rust で実装されていて高速。レンダリングも GPU で高速。
- VI モードでキーボードによる快適な操作が可能
- 設定ファイルが TOML 形式でわかりやすい(シンプルさを追求しているため、GUI ベースの設定画面は提供しない)
vim
やtmux
のようなターミナルに寄生するアプリと相性がよくて表示の問題が起きにくい- スクロールバッファ内の検索が可能
- マルチウィンドウモードもあり(ただし思想としては
tmux
などのターミナルマルチプレクサーを使うべきとしている)
簡単にまとめると、vim
や tmux
使いで、シンプルで高速なクロスプラットフォームなターミナルアプリを求めている人にうってつけということですね!
ちなみに、Alacritty という名前の末尾が tty になっているのがおしゃれです(「敏捷性」を表す英単語「alacrity」をもじってます)。
VI モード
VI モードに切り替えると、VI 風のキーバインドを使ったカーソルの移動、画面スクロール、検索などが可能になります。
VI モードへの入り方だけ特殊 (Ctrl + Shift + Space
) ですが、あとはほぼ VI の操作方法に従って操作できます(参考: まくまく Vim ノート)。
キーバインド | 説明 |
---|---|
Ctrl + Shift + Space | VI モード ON/OFF |
i | VI モード OFF(普通のプロンプト操作に戻る) |
h / j / k / l | カーソル移動 |
v / Ctrl + v / Shift + v | 選択/矩形選択/行選択 |
y | 選択したテキストをヤンク(コピー) |
Ctrl + B / Ctrl + F | 上下スクロール |
/ / ? | 前方検索/後方検索 |
スクロールバッファ内の検索
下記のキーコンビネーションで、スクロールバッファ内のテキストをインクリメンタルサーチできます。
まぁ、これを使わなくても VI モードに入って /
で検索しちゃえばよい気はします。
キーバインド | 説明 |
---|---|
Ctrl + Shift + f (Cmd + f ) | 前方検索(インクリメンタルサーチ) |
Ctrl + Shift + b (Cmd + b ) | 後方検索(インクリメンタルサーチ) |
Enter / Shift + Enter | 次/前の一致箇所へ |
Esc | 検索を終了 |
次のような正規表現パターンを使って検索できます。
例えば、\d{4}-\d\d-\d\d
と入力すると、2024-03-26
のような日付を検索できます。
パターン | 説明 |
---|---|
. | 任意の 1 文字に一致 |
[abc] | a , b , c のいずれかに一致 |
\d / [0-9] | 任意の数値に一致 |
* | (前の文字が)0 回以上 |
+ | (前の文字が)1 回以上 |
? | (前の文字が)0 回 or 1 回 |
{4} | (前の文字が) 4 回 |
{1-2} | (前の文字が)1 回 or 2 回 |
ちょっと高度な使い方:
Cmd + f
で検索モードに入るdoc.*
と入力して doc で始まるテキストを検索Esc
で検索モードを終了- 最後に選択されていたヒット箇所がハイライトされているので、
Cmd + c
→Cmd + v
などでコピペ
Alacritty の設定
Alacritty の設定ファイルは下記のパスに配置します。 バージョン 0.13 以前は YAML 形式が使われていましたが、今は TOML 形式で作成します。
- Linux/macOS の場合:
~/.config/alacritty/alacritty.toml
- Windows の場合:
%APPDATA%\alacritty\alacritty.toml
~/.alacritty.toml
というパスで配置しても認識しますが、設定を複数ファイルに分けて記述するのであれば、~/.config/alacritty
ディレクトリにまとめて配置するのがよいでしょう(これは XDG 標準に従った配置でもあります)。
~/.config
の代わりに別のディレクトリを使いたいときは、$XDG_CONFIG_HOME
環境変数にそのディレクトリパスを設定します。
これは、Alacritty の仕組みではなく、Linux や macOS で config ディレクトリを設定するための標準的な仕組み (XDG) です。
設定ファイルの詳細は マニュアルページ で確認できますが、以下に簡単な設定例を紹介しておきます。
設定ファイルのオートリロード
Alacritty の設定ファイルをリロードするには Alacritty の再起動が必要ですが、下記の設定をしておくと、設定ファイルを修正したときに自動でリロードしてくれるようになります。 最初にこの設定をしておくと便利です。
ただし、ウィンドウの見た目の設定 ([window]
) などは、Alacritty の再起動が必要なことがあります。
ウィンドウの表示設定
[window]
セクションでウィンドウの表示をカスタマイズできます。
色の設定
[colors]
セクションで色の設定を行えます。
カーソル
[cursor]
セクションでカーソルの表示方法を設定できます。
フォント
[font]
セクションでフォントの表示設定を行えます。
キーバインド
Alacritty のデフォルトのキーバインドは alacritty-bindings(5) で確認できます。
これ以外のキーバインドを設定したいときは [keyboard]
セクションで設定します。
キー名(F1
や PageUp
)のリストは こちら で確認できます。
次の例では、PageUp
と PageDown
キーを画面スクロールに割り当てています(デフォルト設定でも Shift + PageUp/PageDown
で画面スクロールできます)。
カラーテーマ
カラーテーマ をインポートすることで、まとめて色の設定を行うこともできます。
Windows 用の設定
WSL の Ubuntu を使う
Windows で Alacritty を起動したときに WSL 側のシェルを使いたいときは、[shell]
セクションで以下のように設定しておきます。
起動時のワーキングディレクトリを移動したいときは --cd
オプションで指定できます(Windows 形式の C:/aaa
や、Linux 形式の /mnt/x
、~/gitwork
といったパスを指定できます)。
通常はデフォルトの Ubuntu ディストリビューションが起動するはずですが、他のディストリビューションを起動したいときは -d <dist>
オプションで指定できます。
WSL にどのようなディストリビューションがインストールされているかは、wsl -l
で確認できます。
C:\> wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
podman-machine-default
Windows と macOS 用の設定ファイルを分ける
Alacritty はクロスプラットフォームなアプリですが、shell 設定などは OS 別の設定をしたくなります。
そのようなケースでは、次のように共通部分の設定ファイルと OS ごとの設定ファイルを分けて作っておいて、import
で読み込むようにすれば OK です。
alacritty-common.toml
… 共通の設定alacritty-mac.toml
… macOS 用の設定alacritty-win.toml
… Windows 用の設定
後から読み込んだ設定ファイルで設定が上書きされるので、OS ごとの設定ファイルは後ろに来るように並べてください。
下記は、各 OS 用の alacritty.toml
の記述例です。
ここでは、dotfiles
という Git リポジトリで設定ファイルを管理していることを想定しています。
その他
Alacritty は、ターミナルマルチプレクサーである tmux と一緒によく使われます。 tmux を使うと、ターミナル内でタブのような機能を使えるようになります。
- 参考: tmux チートシート