はじめに
今回紹介する「長方形選択(短形選択)」や「複数カーソル」は、Sublime Textに限らず、VSCode、Vim、Emacs、JetBrains系など多くのエディタで共通して使える編集方法です。
この記事ではSublime Textを例に説明しますが、特定のエディタに依存しない“普遍的な編集テク”としてご覧ください。
「複数カーソル」「長方形選択」の対応一覧表
以下のように、各エディタにも類似機能があります:
| エディタ | 複数カーソル | 長方形選択 |
|---|---|---|
| Sublime Text | ○ | ○ |
| VSCode | ○ (Alt+クリック) | ○ (Shift+Alt+ドラッグ) |
| JetBrains系 | ○ | ○ |
| Notepad++ | ○ | ○ |
| Atom | ○ | ○ |
| Emacs | ○ (C-x r ...) |
○ (C-SPC C-n) |
| Vim/NeoVim | ○ (Visual Block mode) | ○ (Ctrl+v) |
emacsユーザーがSublimeTextを使う時の必携事項
emacsを日頃使ってるけど、pythonはSublimeTextで書く、というくらいのユーザーの場合、知らないと損していることあるので、簡単にまとめておきます。(macユーザーなのでwindowsは検証できてませんが、同機能はあるはずです。)
(1) 任意の位置にカーソルを追加して同時編集する
Cmd + 左クリック
で、任意の位置にカーソルを追加でき、同時編集が可能です。
文字列リストの末尾へ一括で文字を追加したい場合などに非常に便利です。
Cmd + 左クリック、で任意の場所を選択できて、そこに文字の追加や編集が可能です。
これは emacs でどうやるのか知らない。とっても便利!
例えば、文字列を書いた後に、全部に改行を追加したかって、て思った時も、⌘+左クリックで、入れたい場所を選択して、文字を入力できる。
(2) Sublime Textでも長方形選択ができる
“矩形選択(長方形選択)”はemacs特有の機能ではありません。
Sublime Textでは:
Opt を押しながら 左ドラッグ
これで縦方向に矩形領域を選択できます。選択範囲の削除・挿入・置換も行えます。
長方形(短形)選択できるのは、emacs だけの特典ではないのです。
「Opt を押しながら、左クリックしドラッグ」
とすると、長方形の領域で選択できます。Optを押しながらドラッグ、というのがポイントです。もちろん、これの後に del をすると削除できますし、文字列を入れると置換できます。
Opt を押しながら 左ドラッグ で、適当に4行を選択した時の例です。
(3) Sublime Text使用時にインデントがずれる理由
これはSublime Textに限りませんが、インデントずれの原因として多いのは、ソフトタブとハードタブの混在です。
Sublime Textでは、デフォルト設定ではタブキーがスペース4つと等価に扱われるため、見た目は揃って見えてしまうことがあります。
emacsで開くとずれが明らかですが、Sublime Text側では揃って見えることがあり、混乱の原因になります。
対策としては、全選択してタブ(→)とスペース(…)を確認する方法が分かりやすいです。
例えばよくありがちなパターン。emacsで見ると明らかにずれているのがわかるが、sublimeTextだと一見揃ってる様に見える(こうなるかは設定に依存します)。
解決方法は簡単で、「全選択をしてドット(....)とダッシュ(----)の混在を確認」 で一発でわかります。
(4) 置換のショートカット
Sublime Textでは:
Cmd + Opt + F
で置換ウィンドウが開きます。
emacsユーザーにはなかなか覚えられないかもしれないが、、「Cmd + Opt + F」 で置換できます。設定をemacs風に変える方法もあります。
(5) タブとスペースが混在するエラーを防止するための設定
空白を常時可視化
最近は、ChatGPTなど生成系はタブではなく、スペース4個を用いてるので、sublimetext の設定もタブを使った時にスペースが4つに設定しておくと便利です。
タブを強制的にスペース4つ分にする。
基本設定から、
// The number of spaces a tab is considered equal to
"tab_size": 4,
// Set to true to insert spaces when tab is pressed
"translate_tabs_to_spaces": true,
と設定すると、tab が 4つのスペースで、タブを強制的にスペース4つ分にしてくれます。
点々を常に表示する
draw_white_space を all に変更すると常に点々が表示されて、タブと点々が混在していたとしてもすぐに気がつけて便利です。
// Set to "none" to turn off drawing white space, "selection" to draw only the
// white space within the selection, and "all" to draw all white space
// "draw_white_space": "selection",
"draw_white_space": "all",
この設定をしておくと、
のように、点々が常に見えてるようになります。
【Sublime Text以外ではどう操作する?】
VSCode:
- 複数カーソル: Alt+クリック
- 長方形選択: Shift+Alt+ドラッグ
Vim:
- 矩形選択: Ctrl+v
- 編集: I ... Esc
Emacs:
- 矩形選択開始: C-SPC → 移動
- 編集: C-x r t
そのほか、いろんな方の記事もあります。
おわりに:複数カーソルと長方形選択
複数カーソルと長方形選択は、ただの便利機能ではありません。“同じ操作を繰り返さなくていい”という自由をくれる技術です。
マウスで同じ場所を何度もクリックしなくてよい。インデントや末尾の追加で悩まなくてよい。文字列の整形や列データの編集も一瞬、などなど、小技も大切にするきっかけになれば幸いです。
1回10秒の操作が×100回なくなる。その差は、1時間ではなく、1ヶ月、1年、そしてキャリア全体に効いてきます。




