Mac版SublimeText3を導入し、日本語検索をしようと検索欄に日本語を入力→Enter
... 
検索欄が空になってしまい検索ができない。

 その原因と対策

1. ぐぐる

2. 考えられる原因

3. 対策(3種類)


 

1. ぐぐる

とりあえずぐぐってみると...

https://gist.github.com/chibicode/ad1f50b3b191ee694556 

http://memo.sanographix.net/post/101061111635

この2件が上の方に。いずれも設定ファイルの下記部分をコメントアウトすることにより対処してる模様。
	// Find panel key bindings
	{ "keys": ["enter"], "command": "find_next", "context":
		[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
	},
	{ "keys": ["shift+enter"], "command": "find_prev", "context":
		[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
	},
	{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
		 "context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
	},
でもざっと読む限りこの部分って検索バー(Find Panel)でのEnterキーの処理を定義してるだけだし、コメントアウトしても単にEnterキーの処理をなくしただけ。
よって、これらをコメントアウトした後に検索バーでEnterを押すと普通の改行として扱われてしまうので、command + gで次の検索結果へいってねということになってる。

2. 考えられる原因

日本語対応しているエディターで検索する場合、「日本語の確定」→「検索」というアクションを2回のEnterで行う。
つまり日本語入力後の一回目のEnterキーは「日本語の確定」、二回目のEnterキーは「検索」というアクションを行いたいわけだが、
	// Find panel key bindings
	{ "keys": ["enter"], "command": "find_next", "context":
		[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
	},
こいつが一回目のEnterキーで動いてしまってるのかな?
だとすれば「日本語の確定」をすっ飛ばして、検索バーは空欄のまま「検索」が行われてしまうのにも納得がいく。

3. 対策(3種類)

1つ目 設定ファイルを書き換える
上記2つのブログにあった方法と同様。Enterの処理がぶつかっているのならばEnterキーの処理を消してしまえばいい。(暴力的?)
その代わり、次の検索結果に移動する際ももちろんEnterキーは使えないので、command + gを使うしかない。

2つ目 最初からcommand + gを使う
結局、Enterの処理がぶつかっているだけなのだから、最初からcommand + gを使えばよい。
具体的に言うと、
日本語入力→(Enterを一度も押さずに)「command + g」だ。
これで検索が走るし、設定ファイルを書き換える必要もない一つ目の方法より良いと思う。
検索バーを消しながら検索を進めたい場合には
日本語入力→escキー→Command + gでおk。

3つ目 処理の順番を定義する
これが一番理想。日本語(に限らず)Enterキー一発目では「確定」のようなアクションを行いたい場合には、「確定」を先に行い、検索はその後に走らせるというもの。
この方法はやり方がわからないので、どなたかご存知の方がいらっしゃったらご教授くださいませ。。