複数カーソルとは
Sublime Text2では複数のカーソルを出して複数の箇所を同時に編集できます。
その基本的な使い方をまとめました。
ソースコード内の複数の単語を変更する
公式ページの1番目の例です。複数箇所に存在する単語を別の文字列に置き換えてみます。
全てのdouble型の変数をfloat型に変換してみます。
編集前
public class Test {
private double aaa;
private double bbb;
public double ccc;
}
編集後
public class Test {
private float aaa;
private float bbb;
public float ccc;
}
- 変更したい対象の単語(double)にカーソルを合わせてCmd+Dを押す
- この状態で編集対象の選択モードになる。Cmd+Ctrl+Gで同じ単語をすべて選択する
- すべての"double"に入力カーソルが作成されるので"float"を入力する
tips
- escで単一のカーソルに戻る
- Cmd+Dでフォーカスが当たっている要素を選択状態にして次の要素へ(Cmd+Shift+Gで前の要素へ)
- Cmd+Lでカーソルの1行を選択状態にする
- Cmd+Dで単語を選択状態にする
- Cmd+Gでフォーカスを移動(単一の選択のみ)
- Cmd+Ctrl+Gでフォーカスが当たっている単語と同じ単語をすべて選択
- Shift+Ctrl+UPで上の行を選択状態にする
- Shift+Ctrl+DOWNで下の行をを選択状態にする
複数行をまとめて編集する+α
公式ページの2番目の例です。改行されている複数の文字列の前後にダブルクォートを追加し、コンマを追加して、鍵括弧を前後に追加するということをやっていました。同じ操作をやってみます。
編集前
Mon
Tue
Wed
Thu
Fri
Sat
編集後
date = ["Mon","Tue","Wed","Thu","Fri","Sat"]
- Cmd+Aですべて選択
- Cmd+Shift+Lで選択中の要素の末尾にカーソルを作る
- Ctrl+Aで行頭に戻りダブルクォート(")を入力
- Ctrl+Eで行末に移動してダブルクォート(")とカンマ(,)を入力
- fn+deleteで改行を削除
- Escで複数行編集モードを抜ける
- Control+Eで末尾に戻り、最後のカンマを消す
- Cmd+Lで1行選択し、開きかっこ([)を入力する。同時に閉じ括弧(])も入力される
- Ctrl+Aで行頭に戻って変数名とイコールを入力
検索した結果を使って編集する
カンマ区切りになっているテキストに対して、カンマの後にスペースを挿入したいケースを考えます。
こういう場合は検索した結果から複数のカーソルを作成し、編集すると便利です。
編集前
date = ["Mon","Tue","Wed","Thu","Fri","Sat"]
編集後
date = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
- Cmd+Fで検索バーを開く
- テキストボックスにカンマ(,)を入力する
- マッチしたもの全てをCmd+Ctrl+Gで編集状態にする
- Escで検索バーを閉じる
- カンマとスペースを入力する
###tips
- 置換と違うのは入力時に補完が効くところ。長いクラス名や型名を置換するときに便利です
- 検索バーを出した状態でCmd+Alt+Rを押すと正規表現も使えます