【Sublime Text】ファイルを閉じる(タブを閉じる)時に、いちいちダイアログを表示しないようにする

IT

Sublimeでファイルを閉じる(Command + W)際にいちいち表示されるダイアログが邪魔。なので、これを表示せず問答無用で閉じるショートカットを作る方法を調べた。

※ちなみにダイアログ画面でCommand + Dを押下すれば「Don’t Save」を押したのと同じになるので、それで地道に閉じていくという手もある。

手順

プラグイン作成

Sublime Textを開き、「Tools」→「Developer」→「New Plugin…」と進む。

以下のようなコードを書く。

import sublime_plugin
class CloseWithoutSavingCommand(sublime_plugin.WindowCommand):
    def run(self):
        view = self.window.active_view()
        view.set_scratch(True)
        view.close()

以下のような階層に保存する。

~/Library/Application Support/Sublime Text 3/Packages/User/close_without_saving.py

キーバインディング

「Sublime Text」→「Preferences」→「Key Bindings」と進み、User用の設定として以下のように記述する。

[
	{
    	"keys": ["super+option+w"],
    	"command": "close_without_saving",
	}	
]

以下のような階層に保存する。

~/Library/Application Support/Sublime Text 3/Packages/User/Default (OSX).sublime-keymap

ファイル構成

以下のような構成になった。

% cd ~"/Library/Application Support/Sublime Text 3/Packages"
% find . -type f
./Default/Default (OSX).sublime-keymap
./User/close_without_saving.py
./User/Preferences.sublime-settings
./User/Default (OSX).sublime-keymap

これで、「Command + Option + W」を押下すればダイアログなしで閉じることができる。

補足

プラグインの保存場所は「Packages」配下ならどこでもよいらしい。

キーバインディングとプラグインはファイル名ではなく、クラス名で紐づくらしい。(「CloseWithoutSavingCommand」が「”command”: “close_without_saving”」に対応)

以上


【参考サイト】

Disable file close warning dialogbox in Sublime Text
I primarily use ST as my temporary notepad. Now when I hit Ctrl+W it is producing me this dialog However 99% time my intention is "Close Without Saving". Is t...
Plugins — Sublime Text Unofficial Documentation