emacsユーザーがSublimeTextを使う時に知っておくとよいこと
emacsを日頃使ってるけど、pythonはSublimeTextで書く、というくらいのユーザーの場合、知らないと損していることあるので、簡単にまとめておきます。(macユーザーなのでwindowsは検証できてませんが、同機能はあるはずです。)
(1) 選択した任意の場所に文字列を追加する方法
コマンド + 左クリック、で任意の場所を選択できて、そこに文字の追加や編集が可能です。
これは emacs でどうやるのか知らない。とっても便利!
例えば、文字列を書いた後に、全部に改行を追加したかって、て思った時も、⌘+左クリックで、入れたい場所を選択して、文字を入力できる。
(2) SublimeTextでも長方形選択できます!
長方形(短形)選択できるのは、emacs だけの特典ではないのです。
「Opt を押しながら、左クリックしドラッグ」
とすると、長方形の領域で選択できます。Optを押しながらドラッグ、というのがポイントです。もちろん、これの後に del をすると削除できますし、文字列を入れると置換できます。
(3) SublimeTextを使ってるとインデントで怒られるのはなぜ??
これは、sublimeTextに限らない問題であるが、「ソフトタブとハードタブの混在」が原因である。なぜsublimeTextだと問題になるかというと、デフォルトではスペース4つでタブであるため、見た目はインデントが揃っているように見えてしまう。
例えばよくありがちなパターン。emacsで見ると明らかにずれているのがわかるが、sublimeTextだと一見揃ってる様に見える(こうなるかは設定に依存します)。
解決方法は簡単で、「全選択をしてドット(....)とダッシュ(----)の混在を確認」 で一発でわかります。
(4) 置換方法のショートカット
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",
この設定をしておくと、
のように、点々が常に見えてるようになります。