position: absolute;

Sublime Textのテキスト選択Tips2つ


Sublime Textといえば拡張選択機能が大きな特徴の1つですが、実は設定やパッケージ等でカスタマイズが可能です。このエントリーでは日本語に関わるものとスコープに関わるTipsを紹介します。

Web制作者のためのSublime Textの教科書』の内容補足的なエントリーですが、読んでなくても使えるTipsです。

日本語選択の分割文字の指定

日本語の文章部分をダブルクリックしたり、[Shift] + [Ctrl(Win)/Option(Mac)] + [←/→]でSublime Textは「単語選択」を行いますが、日本語の文章の場合単語どころか句読点などもお構いなしに選択範囲を設定してしまいます。



このあたり「Sublime Textが日本語に弱い」といわれる所以の1つですね(つか、日本語に限らずマルチバイト言語の国ではあまねく言われているのかなと思いますが)。というわけでせめて句読点とかカッコレベルで選択範囲を止める方法です。これはパッケージ等は必要なく、設定で可能です。

Sublime Textのデフォルトの設定を確認すると

// Characters that are considered to separate words
"word_separators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?",

という記述がありますが、これをユーザー設定にコピーして全角の句読点やカッコなどを追加すればOKです。ついでにHTMLのclassとかでハイフンで選択止まるのが面倒なのでハイフンを区切り文字から外してしまいます(言語設定でやった方がいいかもしれませんが)。

// Characters that are considered to separate words
// あくまで設定例です。
"word_separators": "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`~?。、 「」:”()",

これで、句読点で選択が止まってくれました。



以前に比べると相当ストレスが減るかと思いますので是非試してみてください。

これ、さらに進めると漢字とかなの境界とか日本語と半角英数字の境界とかになるんですが、この辺りまで考えるともうパッケージになるんですかねえ>上野神様?

スコープ内選択のカスタマイズ

Sublime TextにはSelectionメニューにExpand Selection to Scopeというのがあるのですが、これはスコープの区切りまで選択範囲に含めます。例えば、aタグのhrefの中をコピーしようとしたら「"」まで含めて選択範囲にします。



これだとURLだけとか、値だけコピーなどしたいときに不都合なので、もう少し細かい刻みで選択を行ってくれるSublime-expand-regionというパッケージを導入しました。

パッケージコントローラーでインストールし、ユーザーのキーバインド設定に

// Macでの例
{ "keys": ["super+shift+space"], "command": "expand_region" },

を記述します。導入後、スコープの単位が細かくなるので、[Ctrl(Win)/Command(Mac)] + [shift] + [space]ごとに徐々に選択範囲が拡張されます。



クオート等を含めた選択範囲も[Ctrl(Win)/Command(Mac)] + [shift] + [space]ごとに拡張される選択で含まれるので、元来のExpand Selection to Scopeのショートカットをこちらに置き換えても特に支障はないでしょう。

ではでは、また何かいいものあれば紹介します!