カーソル移動のキー一覧
矢印キーのグループは固定で、変更できません。
| キー | 操作 | 補足 |
|---|---|---|
| ↑ ↓ ← → | カーソル移動 | 固定キー。左右は 1「文字」単位で、バイト単位ではありません(2.2.3 参照)。 |
| PageUp PageDown | 1 ページ上下 | 固定キー。1 ページ=内容領域の高さ。 |
| Home End | 行頭/行末 | 固定キー。 |
| Ctrl+A Ctrl+E | 行頭/行末 | 変更可。Home/End が押しにくいキーボード向け。 |
| Ctrl+Home Ctrl+End | 文書の先頭/末尾 | 固定キー。 |
| Ctrl+G | 行/列へ移動 | 2.2.2 参照。 |
- 行末で → を押すと次の行の先頭へ、行頭で ← を押すと前の行の末尾へ移ります。
- 上下に動くとき、元の列を覚えています。短い行を通り過ぎて長い行に戻ると、元の位置に戻ります。
- 行がウィンドウより広いと、右へ動くにつれて横スクロールします。折り返しを切っているときによく見られます(2.2.9 参照)。
下から 2 行目に 行:列 が常に出ています。「カーソル位置を表示」という操作もありますが、既定ではキーが割り当てられていません。ステータス行に出ているからです(4.4.6 参照)。
行と列を指定して移動
Ctrl+G。行番号だけでも、「行:列」でも構いません。
- 42 なら 42 行目の先頭へ。
- 42:8 なら 42 行目の 8 文字目へ。
- 行番号が文書より大きければ最終行で止まり、列が行より長ければ行末で止まります。
- 形式が不正(負数や英字)なら「位置の形式が正しくありません。正の行番号または 行:列 を入力してください」と出て、もう一度尋ねます。
- 成功すると「120 行 16 列へ移動しました」と報告します。
error[E0308]: src/main.rs:120:16 のような出力なら、120:16 を Ctrl+G に入れれば到着します。16 進数表示でオフセットへ飛ぶのも同じキーです(3.3.4 参照)。
「1 文字」ずつ動く
Erya の単位は Unicode の書記素クラスターです。バイトでもコードポイントでもありません。
普段は意識しませんが、次の場面で差が出ます:
| 内容 | ← 1 回で | 他のエディターでありがちな挙動 |
|---|---|---|
| 漢字「漢」 | 1 文字ぶん移動 | おおむね同じ |
| 絵文字 👨👩👧👦 | ひとかたまりで移動 | 構成要素ごとに進み、止まって見えたり崩れたりする |
| 結合文字(濁点など) | 1 文字ぶん移動 | 本体と分離してしまう |
| 肌色修飾子 👍🏽 | ひとかたまりで移動 | 修飾子だけ外れて 👍 が残る |
削除・上書き・選択も同じ単位なので、Backspace 1 回で消えるのは目に見えている 1 文字であり、半端な残骸は生じません。
ステータス行の 行:列 は何文字目、画面上の位置は何桁目です。全角は 2 桁、タブはタブ幅に展開されます。したがって全角だけの行の 5 文字目は画面上の 9 桁目にあります。Ctrl+G に入力する列はステータス行と同じ「文字数」です。
通常の選択
Shift を押しながら移動するだけです。
- Shift はすべての移動キーと組み合わせられます:矢印、Home/End、PageUp/PageDown、Ctrl+A/Ctrl+E。
- 逆方向へ動かすと縮みます。選び直しにはなりません。
- 選択範囲は灰地に黒で、複数行にまたがれます。
- ステータス行のモードが 選択 になり、メッセージ行が文字数を報告します。
- Esc で解除。そのまま入力すると選択範囲を置き換えます。
Erya に 1 キーの全選択はありません。Ctrl+Home で先頭へ移動し、Ctrl+Shift+End を使ってください。ターミナルがその組み合わせを送れない場合は Shift+PageDown を何度か押します。(Erya の Ctrl+A は「行頭へ」で、全選択ではありません。)
矩形選択
長方形の選択。桁のそろった表やコードに向いています。
- Ctrl+B で起点を決めます。メッセージ行に「矩形選択を開始しました;矢印キーで範囲を広げます」と出ます。
- 矢印キーで長方形を描きます。上下が行、左右が桁を決めます。
- もう一度 Ctrl+B(または Esc)で解除します。
矩形選択も切り取り・コピー・貼り付け・削除ができ、さらに専用の操作が 2 つあります(埋める・動かす、2.2.6 参照)。
折り返すと 1 行が複数行に分かれ、「何桁目」が意味を失うため、両者は排他です:
- 矩形選択中に Ctrl+L:「矩形選択中は折り返し表示を有効にできません。先に矩形選択を解除してください」
- 折り返し中に Ctrl+B:「折り返し表示中は矩形選択を使用できません。先に折り返しを無効にしてください」
Ctrl+L で折り返しを切ってから矩形選択を始めてください。
矩形を埋める・動かす
とても便利ですが、既定ではキーが割り当てられていません。
| 操作名 | Classic でのキー | 内容 |
|---|---|---|
| fill_rectangle | Alt+F | 文字を 1 つ尋ね、矩形範囲全体をその文字で埋めます。区切り線や桁揃えに便利です。 |
| move_rectangle_left | Alt+Shift+← | 矩形の中身をまとめて移動します。方向ごとに 1 操作。端に来ると「矩形選択範囲をその方向へ移動できません」と出ます。 |
| move_rectangle_right | Alt+Shift+→ | |
| move_rectangle_up | Alt+Shift+↑ | |
| move_rectangle_down | Alt+Shift+↓ |
Alt 組み合わせと修飾付き矢印は多くのターミナルに届かないためです(1.3.9 参照)。使うには Erya Classic に切り替える(F2 で選ぶだけ)か、押せるキーを自分で割り当てる(4.1.4 参照)かのどちらかです。それまでは F1 ヘルプでキー欄が空欄になります。
矩形選択が無い状態で埋めようとすると「先に矩形選択範囲を作成してください」と出ます。順序は Ctrl+B →矢印キー→操作キーです。
切り取り・コピー・貼り付け
選択が無いとき、切り取りとコピーは「現在の行」が対象です。
| キー | 選択あり | 選択なし |
|---|---|---|
| Ctrl+C | 選択範囲をコピー | 1 行まるごとコピー |
| Shift+Delete | 選択範囲を切り取り | 1 行まるごと切り取り |
| Ctrl+K | 現在の行を切り取り(選択の有無を問わず) | |
| Ctrl+V / Shift+Insert | 貼り付け。選択があれば置き換えます | |
| Ctrl+D | 現在の行を削除(クリップボードには入りません) | |
Ctrl+C でコピーした内容はErya の中だけにあります。タブ間では使えますが、ブラウザーには貼れません。逆も同じで、他のプログラムから持ち込むにはターミナル自身の貼り付け(macOS は ⌘V、Windows Terminal や多くの Linux 端末は Ctrl+Shift+V、マウス中ボタン)を使います。Erya は bracketed paste に対応しているので、その方法で入った文字列は 1 回の貼り付けとして扱われ、「N 文字を貼り付けました」と報告されます。
マウスで選択してターミナル側のコピーを使います。これはターミナルの機能なので、その行にある他の要素も一緒に選ばれます。ステータス行をまたがないようにしてください。
行の切り取りと挿入/上書き
毎日使う小さな操作が 3 つ。
行の切り取りと削除
- Ctrl+K は現在の行を切り取り、クリップボードに入れます。連続して押せば複数行を移動できます。
- Ctrl+D は現在の行を削除し、クリップボードには入れません。コピー済みの内容はそのまま残ります。
- どちらも Ctrl+Z で戻せます。
挿入と上書き
- Insert で切り替えます。モードのマスが 挿入 と 上書き で入れ替わり、メッセージ行にも「上書きモードに切り替えました」と出ます。
- 挿入:入力すると後ろが右へ動きます。既定。
- 上書き:入力するとカーソル位置の文字を置き換えます。桁のそろった表の数字を直すときに便利です。
対処は 2 つ。キーマップエディターで toggle_insert を別のキーに割り当てるか、Insert と Alt+I の両方を割り当てている Erya Classic に切り替えるかです(4.1.2 参照)。16 進数表示のバイト編集には専用の I キーがあります(3.3.7 参照)。
インデントの引き継ぎ
Enter で改行すると、Erya は現在行の先頭にある空白とタブをそのまま引き継ぎます。YAML やコード、箇条書きを書くときに毎回入れ直す必要がありません。不要なときは Backspace で消してください。
よくあるつまずき
移動と選択で多い 6 つです。
| 症状 | 原因と対処 |
|---|---|
| Ctrl+A で全選択できない | Erya では「行頭へ移動」です。全選択の操作はありません(2.2.4)。 |
| Ctrl+C で中断できない | コピーです。終了は Ctrl+X(1.1.7)。 |
| 行の後半が見えない | 行がウィンドウより広いだけです。Ctrl+L で折り返すか End で横スクロールします。 |
| Ctrl+B が折り返しを理由に断られる | 両者は排他です。Ctrl+L で折り返しを切ります(2.2.5)。 |
| 矩形の埋める・動かすが効かない | 既定でキーがありません。Classic に切り替えるか自分で割り当てます(2.2.6)。 |
| ブラウザーからコピーした文字が貼れない | Erya の Ctrl+V ではなく、ターミナルの貼り付けを使います(2.2.7)。 |