既定が「ターミナル安全」な理由
押した組み合わせをターミナルが必ず届けてくれるとは限らないからです。
内蔵の既定プロファイルは Erya Terminal Safe といいます。多くの環境で失敗する 3 種類の組み合わせを意図的に避けています:
| 避けているもの | 理由 |
|---|---|
| Ctrl+ファンクションキー | macOS がシステム用に予約しており(Spaces、Mission Control)、プログラムまで届きません。 |
| Alt/Option に依存する組み合わせ | macOS では Option が特殊文字の入力に使われ、多くのターミナルは設定しないと Meta として送りません。 |
| 修飾付き矢印(Alt+Shift+← など) | そもそも報告しないターミナルが相当数あります。 |
その代償として16 の応用操作が未割り当てです:定型文とマクロの 8 つ(2.4.8 参照)、矩形の移動 4 つと塗りつぶし 1 つ(2.2.6 参照)、段落の再整形 2 つ(3.1.8 参照)、そしてステータス行で足りている「カーソル位置の表示」。機能自体はすべてあり、キーを与えるだけです。一覧は 4.4.6 にあります。
1.0 の完全な組み合わせは Erya Classic として残っており、F2 を押して選ぶだけで戻せます。修飾付き矢印や Alt 組み合わせを報告するターミナル(GNOME Terminal や Windows Terminal など)なら、Classic のほうが快適です。
同梱の 12 プロファイル
すべて keymap/ にあり、そのまま選べます。
| ファイル | 向いている人 |
|---|---|
| erya-terminal-safe.toml | 既定。どのターミナルでも動き、プラットフォームを問わず安全です。 |
| erya-classic.toml | 定型文・マクロ・矩形移動を含む完全な組み合わせが欲しい人。 |
| nano.toml | nano から来た人。 |
| vim.toml | vim のキーが欲しい人(モード編集ではなくキー配列だけです)。 |
| emacs.toml | emacs から来た人。 |
| macos.toml | macOS アプリの慣習に合わせたい人。 |
| vscode.toml / vscode-macos.toml | VS Code から来た人。 |
| visual-studio.toml / visual-studio-macos.toml | Visual Studio から来た人。 |
| intellij-idea-classic.toml | IntelliJ IDEA から来た人。 |
| eclipse.toml | Eclipse から来た人。 |
既定と Classic でとくに違うキー
| 操作 | Terminal Safe | Erya Classic |
|---|---|---|
| ファイルを開く | Ctrl+O | Alt+O |
| 名前を付けて保存 | F12 | Ctrl+O |
| 置換 | Ctrl+R | Ctrl+H |
| やり直す | Ctrl+Y | Ctrl+R |
| 行を削除 | Ctrl+D | Ctrl+Y |
| コピー | Ctrl+C | Ctrl+Insert |
| タブを閉じる | F11 | Ctrl+F4 |
| 前/次のタブ | F9 / F10 | Ctrl+Shift+Tab / Ctrl+Tab |
| 16 進数表示 | Ctrl+P | Alt+H |
| 矩形選択 | Ctrl+B | Alt+B |
| 文書の整形 | Ctrl+T | Ctrl+Shift+F |
既定では Ctrl+Y がやり直す、Classic では行削除で、Ctrl+R もちょうど反対です。切り替え後にいちばん押し間違えやすい組なので、まずヒント行を見てください(1.3.3 参照)。
システム設定で切り替える
いちばん簡単な方法で、ファイルを触りません。
- F2 を押します。
- ↑ ↓ でキーバインドの行へ(選択中の行は反転し ▶ が付きます)。
- ← → でプロファイルを変えます。一覧は keymap/ から読み込まれます。
- Enter で適用。「設定を適用しました:Erya Classic/日本語」と出て、すべてのタブに即座に反映されます。
- Esc で取り消し、何も変わりません。
keymap/ ディレクトリが見つかっていません。ERYA_KEYMAPS_DIR で場所を指定してください(1.2.7 参照)。リリースのアーカイブから実行ファイルだけ取り出したときによく起きます。
キーマップエディター
Erya の中でキーを変え、自分の TOML として保存します。
| キー | 内容 |
|---|---|
| ↑ ↓ | 操作を選びます。左が説明、右が現在のキー(空欄は未割り当て)。 |
| Enter | その操作のキーを編集します。現在値が入っており、複数はカンマ区切りです。 |
| Delete | 無効化します(空欄と同じ)。「選択した操作のショートカットを無効にしました」。 |
| S | プロファイル全体を新しい TOML として保存します。 |
| Esc | システム設定へ戻ります。 |
- 解釈できないキーや他の操作と競合するキーを入れると「キーマップを更新できません:…」と出て、変更されません。
- 保存ではファイル名を尋ね、成功すると「キーマップを保存しました:…」。
- 名前を付けて保存は既存ファイルを上書きしません。同名があると失敗し、他人の設定を黙って潰しません。
2 通りあります。keymap/ に保存して F2 の一覧から選べるようにするか、プラットフォームの既定パスに置いて起動のたびに読ませるかです(4.1.7 参照)。
設定ファイルの書き方
name と [bindings] だけです。
まず全操作が載った雛形を作ります:
erya --print-default-keymap > keymap.toml
| 記述例 |
|---|
|
name = "私の設定" [bindings] save = "Alt+S" quit = "Ctrl+X" search = ["Ctrl+W", "Ctrl+F"] toggle_rectangular_selection = "Alt+M" redo = [] |
- 1 つの操作に複数のキーを割り当てるには配列で書きます。
- 空の配列 [] は無効化です。
- 書かなかった操作は既定のままです。2 つだけ変えたいなら、その 2 行だけ書けば十分です。
- name はシステム設定と、キーマップエディターの 1 行目に表示されます。
- 操作名の一覧は 4.4、または --print-default-keymap の出力にあります。
キー名の書き方
修飾キーは + でつなぎ、大文字小文字は問いません。
| 種類 | 使える名前 |
|---|---|
| 修飾キー | Ctrl、Alt、Shift、Super、Hyper、Meta |
| 通常の文字 | A〜Z、0〜9、記号 |
| ファンクションキー | F1 から F24 |
| 移動・編集キー | Left、Right、Up、Down、Home、End、PageUp、PageDown、Insert、Delete、Backspace、Tab、Enter、Esc |
例:"Ctrl+S"、"Alt+Shift+Right"、"F12"、"ctrl+shift+f"(大文字小文字は不問)。
単独の F1 はキー操作ヘルプ用に予約されており、設定ファイルに書くとエラーになります(1.3.8 参照)。意図的な非常口で、プロファイルをどう変えても全一覧を呼べるキーが 1 つ残ります。
設定ファイルの置き場所
指定方法は 3 つ。優先度の高い順です。
- --keymap <ファイル>——この実行だけ。最優先です。
- 環境変数 ERYA_KEYMAP——--keymap が無いときに使われます。
- プラットフォームの既定パス——上の 2 つが無いときに探します:
| プラットフォーム | パス |
|---|---|
| macOS | ~/Library/Application Support/Erya/keymap.toml |
| Linux | $XDG_CONFIG_HOME/erya/keymap.toml、未設定なら ~/.config/erya/keymap.toml |
| Windows | %APPDATA%\Erya\keymap.toml |
Erya は自分で作りません。無ければ内蔵の既定値を使い、警告も出しません。一方、--keymap や ERYA_KEYMAP で明示したパスが読めないときはメッセージが出ます。使うと宣言されたものだからです。
競合とフォールバック
設定が壊れていてもプログラムは止まりません。使われないだけです。
- 2 つの操作が同じキー——競合です。どちらを実行すべきか決められません。
- キー名の綴り違い、TOML の構文エラー——解析に失敗します。
- 単独の F1 を割り当てた——予約キーなので受け付けません。
いずれの場合も Erya は完全な既定プロファイルに戻し(問題の行だけ無視するのではありません)、起動時のメッセージ行に理由を出します。プログラムはそのまま動きます。
2 行目のヒント行(実際のキーが出ます)、F1 の全一覧、F2 のプロファイル名。3 か所とも本当のことを教えてくれます。
よくあるつまずき
キーを変えるときの 7 つの場面。
| 症状 | 原因と対処 |
|---|---|
| 設定を変えたのに反映されない | Erya が読む場所に無い(4.1.7)か、却下されて既定に戻っています(4.1.8)。起動時のメッセージを確認してください。 |
| 起動時に「キーバインドを読み込めない」 | 競合か構文エラーです。コロンの後に理由が出ます(4.1.8)。 |
| F2 の一覧が空 | keymap/ が見つかりません。ERYA_KEYMAPS_DIR を設定します(4.1.3)。 |
| Alt の割り当てが効かない | ターミナルが Option/Alt を Meta として送っていません。別のキーにするか、ターミナル側で有効にします(4.1.1)。 |
| F1 の割り当てが拒否される | F1 は予約キーです(4.1.6)。 |
| 名前を付けて保存が失敗する | 同名のファイルがあります。上書きしない設計なので別名にしてください(4.1.4)。 |
| 切り替えたら元に戻すが行削除になった | Ctrl+Y の意味が 2 つのプロファイルで違います(4.1.2)。 |