SublimeTextでHTML編集中にEndキーでタグ展開される件

SublimeTextでHTMLやPHPを書いている最中、アルファベットにカーソルが合っている状態で、文末まで移動させるためにEndキーを押下すると、Emmet(Zen-Coding)のプラグインによりタグ展開がされてしまうという不可解な症状が発生。

Tabキー押してないのに何故!?

と思って色々調べてみたんですが、そもそもEndで文末に移動するというところがポイントでした。

普通のMacではEndキーで文末に移動させることはできないのです。

本来は「Command + Shift + 右」を押さないといけません。

これをKeyRemap4MacBookでカスタムしていたのをすっかり忘れていました。

keyremap4macbook-config

「Use PC Style Home/End」でEndキーに「Ctrl + E」が割り当てられていたのです。
「Ctrl + E」はEmmetの「タグ展開」をするショートカットキーでもあり、これが原因でした。

解決方法

  • KeyRemap4MacBookの設定を無効にする
  • Emmetの「Ctrl + E」のキーバインド(expand_abbreviation)を無効にする

の二択ですが、10年以上使っているWin時代の癖(Shift + Endの多用)が抜けないので、Emmet側のキーバインドを無効にしました。

  1. ~/Library/Application Support/Sublime Text 2/Packages/Emmet/Default (OSX).sublime-keymapを開く
  2. 338-351行目をコメントアウト

sublimetext-keymap