search
LoginSignup
97

More than 5 years have passed since last update.

posted at

MacのSublimeText3で日本語が消えるバグを回避する

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番目に出てくるでしょう)

remove pakage

続いて出てきた窓でDocBlockrを探して選択します。

remove DocBlockr

これで削除は完了。

2. パッケージのダウンロード

GitHub上のプラグインページへ移動して、Download ZIPなどでダウンロードします。

ダウンロードしたものは解凍しておきましょう。

3. パッケージのインストール

ターミナルを開き、

$ open ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/

と打ちましょう。

Packages ディレクトリ

Finderが開くので、Packages以下に、解凍したディレクトリ(ここではsublime-jsdocs-master)を放り込みます。ディクトリ名は変えたければ変えても構いません。

4. KeyBindの変更

ここが一番大事です。sublime-jsdocs-master以下のDefault.sublime-keymapというファイルを開きます。

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を開きます。

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":

参考
MacでSmartMarkdown利用時、日本語の変換確定で文字が消える問題の対策 | 豆腐メンタルは崩れない

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
97