Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSXにおけるIMEの変更 #10

Closed
hirosassa opened this issue Dec 29, 2013 · 9 comments
Closed

OSXにおけるIMEの変更 #10

hirosassa opened this issue Dec 29, 2013 · 9 comments

Comments

@hirosassa
Copy link

こんにちは

先日OSX上で動かしているEmacsを23.1から24.3に上げたところ
OSXが提供している日本語IME (ことえりを使用) への変換コマンド
C-J (Ctrl + Shift + j)がemacs側とられ改行が実行されるようになってしまいました.

US英語配列キーボードを利用しているため,C-J, C-;によるIMEの変更は
とても便利だったので,なんとか復活させたいです.

環境は以下の通りです.
OS: Mac OS X 10.6.8
Emacs 24.3_1 (macports最新版から+patches variantでインストール)
設定ファイルには,(setq default-input-method "MacOSX") を指定.
(指定しなくても挙動は変わらない気がしています.)

よろしくお願いします.

@syohex
Copy link
Member

syohex commented Dec 29, 2013

@SassaHero IMEへの変換コマンドとは具体的に何を示すのでしょうか ?
MacOSXでいうところの, Input sourceの切り替えのことでしょうか
(英語入力からことえりへの切り替え等) ?

手元の MacOSX 10.9.1, Emacs 24.3.50で試してみたところ,
Input sourceの切り替えに C-jを割り当てても, Emacs側に
それが捕られるということはありませんでした. 端末版, GUI版ともに
Input sourceの切り替えが行えました.

あとそのキーを割り当てる方法を詳しく示していただけないでしょうか ?
上記のことは Preference -> Keyboard -> Shortcuts から設定しましたが,
合っていない可能性もありますので.

よろしくお願いします.

@hirosassa
Copy link
Author

@syohex お早いご返答ありがとうございます.

MacOSXのことえりでは,デフォルトでC-J, C-:がinput sourceのHiragana, Romajiへの
切り替えショートカットになっていると思うのですが,
Emacs (GUI, 端末共に) 最小構成で実行しても(init.elにsetq default-input-method "MacOSX" だけを設定),
キーバインドがEmacsに解釈されC-Jすると改行され,C-:すると"C-: is undefined"となってしまいます.

以前は,これに関する特別な設定をせずにC-J, C-:ともに使えていたのですが…

P.S.
input sourceの"切り替え"と言うより"指定"の方が日本語として正しいかもしれません.
自身の現在の状態に関係なくC-JするとHiragana, C-:するとRomajiに指定されます.
ちょうどMacのキーボードにある"かな","英数"キーと同じ動きです.

@syohex
Copy link
Member

syohex commented Dec 29, 2013

@SassaHero C-jを押しっぱなしにしたところ, ご指摘の現象が再現しましたが,
1回, 2回程度押しただけでは再現しませんでした. @SassaHero さんの環境では,
すべて Macに捕られるという具合なのでしょうか ? 私の環境で再現している様子を
見ると, C-jの押し方に気をつければ良いというように思えるのですが, そういう
レベルではなく, とにかく使えないレベルなのでしょうか ?

@hirosassa
Copy link
Author

@syohex C-jに関しては,以前の環境 (Emacs 23.1) でも改行になっていたのですが,
C-J (Ctrl + Shift + j) のショートカットはEmacsではなくMac側に解釈され,Hiraganaへ変換されていました.

現在の環境では,C-jが(C-:も) 完全にEmacs側にとられてしまって,
Mac側に渡す事が全く出来なくなっています.
ちなみに,Emacs側の設定で,global-unset-keyでC-jを解放しても,Mac側にショートカットを
渡せないことも確認しています.

@syohex
Copy link
Member

syohex commented Jan 8, 2014

MacPorts以外の Macでも再現するか試していただけないでしょうか ?
何もパッチを当てないソースからコンパイルしたものというのが望ましいです.

@hirosassa
Copy link
Author

curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-24.3.tar.gz

で持ってきたソースをパッチ無しでコンパイルしてみました.
同様にC-J, C-:が持っていかれてしまい,切り替えが出来ない状況です.

@syohex
Copy link
Member

syohex commented Jan 13, 2014

ありがとうございます. 何かのパッチが問題を引き起こしているわけでは
なさそうですね. Mac特有の情報(内部変数等)を確認してみます.

@troter
Copy link

troter commented Mar 3, 2014

こんにちは。根本的な解決方法では無いですが、次のようにemacsからapplescriptを呼び出す方法で切り替えられることを確認しました。

(global-set-key
 [(control J)]
 (lambda ()
   (interactive)
   (call-process "osascript" nil t nil "-e" "tell application \"System Events\" to key code 104")))
(global-set-key
 [(control :)]
 (lambda ()
   (interactive)
   (call-process "osascript" nil t nil "-e" "tell application \"System Events\" to key code 102"))))

do-applescirptでも同じことが出来るのですが、キーを連打すると手元のemacsがクラッシュしたので、ブロックするcall-processを利用しています。

@hirosassa
Copy link
Author

@troter ありがとうございます! 暫定的にEmacs 23に戻して運用していましたが,
今手元で動く事を確認したので,これで,24以降も常用できそうです.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants