MacでSublimeText3を使っていて、Markdownやプログラムのコメントを書いている時に、変換した日本語が消えてしまうのが煩わしかったので、恒久対応した方法をまとめました。
原因
どうやらMacでは、確定のためのEnter
が、改行のためのEnter
と認識されて、設定されたプラグインのKeyBind(特定のKey押下をトリガーに処理を実行する仕組み)が実行されてしまうらしいです。なので同じ問題はWindows環境では起きません。
環境
- Mac OS X
- Sublime Text3 (Build 3065)
- DocBlockr(プログラムのコメント用プラグイン)
- SmartMarkdown(Markdown用プラグイン)
対応方法
概要
該当のプラグインをPackage Control経由ではなく、GitHubからソースをダウンロードし、手動でPackageディレクトリに放り込み、KeyBindに手を入れます。
Package Controlを使わないのは、Package Controlでインストールされるパッケージだと中をいじることが面倒だからです。
①DocBlockrへの対応
DocBlockrとは
DocBlockrはプログラムのコメント作成を色々と補助してくれるパッケージ。引数や戻り値を見て、
/**
* [description]
* @param {[type]} window [description]
* @param {[type]} document [description]
* @param {[type]} $ [description]
* @return {[type]} [description]
*/
(function(window, document, $){
...
といった内容を自動生成してくれます。他にも地味に改行後に*
を追加してくれたりと、ないと結構面倒くさいです。
ちなみにWebで Preferences > Package Settings > DocBlockr > Settings - Userに、
{
"jsdocs_extend_double_slash": false
}
と設定すると回避できるという記述もありますが、キー名の示す通り、//
で始まるコメントでしか改善されない模様。
対応方法
おそらくDocBlockrはディフォルトでインストールされていると思うので、削除から。
1. パッケージの削除
shift
+command
+p
でCommand Paletteを開き、Package Control: Remove Packageを選択(検索窓に「remo...」まで入れれば1番上か2番目に出てくるでしょう)
続いて出てきた窓でDocBlockrを探して選択します。
これで削除は完了。
2. パッケージのダウンロード
GitHub上のプラグインページへ移動して、Download ZIP
などでダウンロードします。
ダウンロードしたものは解凍しておきましょう。
3. パッケージのインストール
ターミナルを開き、
$ open ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/
と打ちましょう。
Finderが開くので、Packages以下に、解凍したディレクトリ(ここではsublime-jsdocs-master)を放り込みます。ディクトリ名は変えたければ変えても構いません。
4. KeyBindの変更
ここが一番大事です。sublime-jsdocs-master以下のDefault.sublime-keymapというファイルを開きます。
30行目と39行目に同じ記述がありますが、
{ "keys": ["enter"], "command": "insert_snippet", "args": {"contents": "\n${TM_CURRENT_LINE/^\\s*(\\*\\s*).*$/$1/}"},
"keys": ["enter
"]となっているところを、"keys": ["shift+enter
"]と変更しましょう。
30行目と39行目のAfter。
{ "keys": ["shift+enter"], "command": "insert_snippet", "args": {"contents": "\n${TM_CURRENT_LINE/^\\s*(\\*\\s*).*$/$1/}"},
これでSublime Textを再起動すればOK。変換で日本語が消えなくて、複数行コメント内でshift
+enter
を押すと改行してかつコメント行が増えれば成功です。
②SmartMarkdownへの対応
SmartMarkdownとは
Markdownの入力を色々助けてくれるプラグイン。
対応方法
初めからは入っていないので、ダウンロードから。というか手順はDocBlockrの時と変わりません。
1. パッケージのダウンロード
GitHub上のプラグインページへ移動して、Download ZIP
などでダウンロード。
2. パッケージのインストール
割愛(上記参照)
3. KeyBindの変更
SmartMarkdown-master以下にある、Default.sublime-keymapを開きます。
12行目と18行目に以下の記述があります。
{ "keys": ["enter"], "command": "smart_list", "context":
DocBlockrの時と同様、"keys": ["enter
"]となっているところを、"keys": ["shift+enter
"]などに変更しましょう。
12行目と18行目のAfter。
{ "keys": ["shift+enter"], "command": "smart_list", "context":