Linux:SublimeTextで日本語入力できるようにする の変更点
Top / Linux:SublimeTextで日本語入力できるようにする
- 追加された行はこの色です。
- 削除された行はこの色です。
- Linux:SublimeTextで日本語入力できるようにする へ行く。
- Linux:SublimeTextで日本語入力できるようにする の差分を削除
*Linux:SublimeTextで日本語入力できるようにする [#t94e80e0] インストール方法は以下の2種類 -sublimeのPackageControllerからインストール -ソースを直接インストール -Update 2014.07.19 PackageControllerについては割愛。 CentOS6.5にInputHelperを導入して日本語入力可能とする方法です。 ソースから直でインストールする方法としては、以下のコマンド2発です。 InputHelper自体はPackageManagerでインストールします。 これで、InputHelperというプラグインがインストールされます。 しかし、デフォルトの起動ショートカットである「Ctrl+Shift+z」を押しても、インプットウインドウは表示されません。 cd ~/.config/sublime-text-2/Packages git clone https://github.com/xgenvn/InputHelper.git CentOS6.5でInputHelperを動作させるためには以下の2つの作業を実施する必要があります。 して、Sublime起動して、「Ctrl+Shift+Z」を押すと入力用ダイアログが表示されて、iBusで日本語入力が出きるようになります。 +ファイルの権限設定 +パッチ 入力が完了したら「Ctrl+Enter」で日本語が入ります。 ***ファイルの権限設定 [#kd33e8cc] 、、、 まず、うんともすんとも言わない状況は、メニューの「View」→「Show Console」からコンソールを表示することで確認できます。 が、CentOSだと動きません。 小生の場合、以下のようなメッセージが表示されていました。 Traceback (most recent call last): File "./sublime_plugin.py", line 362, in run_ File "./inputhelper.py", line 21, in run File ".\subprocess.py", line 633, in __init__ File ".\subprocess.py", line 1139, in _execute_child OSError: [Errno 13] 許可がありません ふむふむ、なるほど。じゃあ、inputhelper.pyを確認してみます。 SublimeTextのメニュー「Preference」→「Browse Package」からパッケージインストールディレクトリを開き、「InputHelper」ディレクトリを開きます。 すると、「inputhelper.py」が見つかるはずです。 これを開いてみると、21行目は、同ディレクトリ内の「lib」ディレクトリの「linux_text_input_gui.py」を子プロで実行しようとしている行であることがわかります。 ?実行を試みている? というわけで、権限チェックしたら「644」でしたw というわけで、このファイルの権限を「775」に変更して再度実行したら、入力画面が表示されるようになります! ***パッチ [#c7dc6ea9] さて、入力画面が表示されるようになって、実際に入力してみても、本来であれば「Enter」で入力終了であるはずなのに(ソースコード上)、入力が終わりません。 原因は -InputHelperが要求するpygtkのバージョンが2.22以降 -CentOS6系でインストール可能なpygtkのバージョンは2.18 ということです。 具体的には、このプラグインが使っている実装で、gtk.Entry.get_bufferメソッドを使用してますが、これがpygtk2.22以降に提供されているメソッドだからです。 -https://developer.gnome.org/pygtk/2.24/class-gtkentry.html#method-gtkentry--get-buffer 最初は、CentOSに入っているpygtkを新しくしようと思っていろいろ調べていましたが、ソースいじったほうが早そうだったので、以下にパッチを載せます。 ***動かすためのパッチ [#n445f422] Sublimeのパッケージは以下のディレクトリに格納されます。 -/.config/sublime-text-2/Packages この中の「InputHelper/lib」ディレクトリに入っている以下のファイルがパッチ対象です。 -linux_text_input_gui.py このファイルの18行目から始まるprint_textメソッドがパッチ対象です。 パッチの内容は -19行目、20行目をコメントアウト -21行目に「print self.textInput.get_text();」を追加 パッチ適用後のprint_textメソッドの内容を以下に記載します。 def print_text(self): # buffer = self.textInput.get_buffer() # print buffer.get_text() print self.textInput.get_text() これで、動くようになるはずです。 ***InputHelperの設定 [#d932c9d5] 個人的には「Ctrl+Shift+z」はちょっと煩わしいため、「Ctrl+Space」に変更しています。 変更するためには、 -/.config/sublime-text-2/Packages/InputHelper の -Default (Linux).sublime-keymap を、以下の通りに変更します。 [ { "keys": ["ctrl+shift+z"], "command": "input_helper" }, { "keys": ["ctrl+space"], "command": "input_helper" } ] すると、「Ctrl+Space」2発で日本語入力可能となります うむ、これは便利w