Taiichi Hashimoto
taiic****@mac*****
2011年 7月 30日 (土) 12:35:58 JST
橋本です。 現象を確認しました。 CarbonEmacs から CocoaEmacs になってキーバインドの優先度が OSよりもEmacsの方が高くなるように変更されてしまったため、 起きている現象です。どんなキーバインドでも先に CocoaEmacs が 処理しようとしてしまいます。 現状でも対応できるのですが、少し副作用(モード切り替え後、 キー入力が限定されるなど)が大きいので、対策を検討します。 ちょっと待ってください。たぶん、明日の夜ぐらいにはなんとかなると思います。 - taiichi On 2011/07/30, at 8:35, Masahiro KYUSHIMA wrote: > こんにちは。CarbonEmacsとCocoaEmacsのIMEへの挙動の違いについて教えてください。 > > 最近までCarbonEmacsを使い続けてきましたが、MacOSが10.7 Lionになるのを期にCocoaEmacsに乗り換えることにしました。Emacs23をinline_patch-23.2-beta3.tar.gzを当ててソースからコンパイルして、問題なく動作しています。が、IMEに対する挙動が少し異なっており、ちょっと面倒くさいので、可能ならそれを修正したいのです。 > > ◎現況 > ・CarbonEmacsではC-Shift-j(C-J)で日本語に、C-Shift-' (C-")で英数に切り替えていた。 > ・CocoaEmacsではC-Shift-jはリターン(newline?)として改行され、C-Shift-'は「C-" is undefined」とはじかれてしまう。 > ◎したいこと > ・CarbonEmacsではC-Shift-j(C-J)で日本語に、C-Shift-' (C-")で英数に切り替えたい。 > > このキーバインドがどこからきたか覚えていませんが、CarbonEmacsではことえりも、今使っているかわせみもこれで日本語・英語を切り替えられます。現況のEmacs23ではCmd-Spaceで切り替えていますが、これはトグルなので、現在が日本語か英語か、目線を動かして確かめないといけないのが面倒なのです。C-Shift-j(C-J)・C-Shift-' (C-")ならば日英どちらかに明示的に指定できるのでうれしいのです。 > > ======CarbonEmacs時代のemacs.el(以前のゴミも残っていますが、とりあえずas isで) > ;(line-number-mode 1) > ;(column-number-mode 1) > ;;C-h issue > ;(load "keyswap") > (keyboard-translate ?\C-h ?\C-?) > ; > ;color of the status bar to mac-like blue > (if window-system (progn > (set-face-background 'modeline "skyblue2") > )) > ; > ;japanese env > ;(require 'un-define) > ;(set-language-environment 'Japanese) > ;(set-default-coding-systems 'euc-jp-unix) > ;(set-terminal-coding-system 'euc-jp-unix) > ;(set-keyboard-coding-system 'utf-8) > ;(set-clipboard-coding-system 'sjis-mac) > ;(set-file-name-coding-system 'utf-8) > ; > (require 'recentf) > (recentf-mode 1) > ; > ;; mac key shortcuts > (setq mac-command-key-is-meta nil) > (global-set-key [(alt c)] 'kill-ring-save) > (global-set-key [(alt v)] 'yank) > (global-set-key [(alt x)] 'kill-region) > (global-set-key [(alt a)] 'mark-whole-buffer) > (global-set-key [(alt z)] 'undo) > (global-set-key [(alt f)] 'isearch-forward) > (global-set-key [(alt o)] 'find-file) > (global-set-key [(alt s)] 'save-buffer) > (global-set-key [(alt p)] 'mac-preview) ; requires mac-preview > (global-set-key [(alt w)] 'kill-this-buffer) > (global-set-key [(alt m)] 'iconify-frame) > (global-set-key [(alt q)] 'save-buffers-kill-emacs) > (global-set-key [(alt .)] 'keyboard-quit) > (global-set-key [(alt up)] 'beginning-of-buffer) > (global-set-key [(alt down)] 'end-of-buffer) > (global-set-key [(alt left)] 'beginning-of-line) > (global-set-key [(alt right)] 'end-of-line) > ; > (if (eq window-system 'mac) (require 'carbon-font)) > (fixed-width-set-fontset "hirakaku_w3" 12) > =========ここまで > > =========Emacs23のinit.el > (set-language-environment 'Japanese) > (prefer-coding-system 'utf-8) > (setq default-input-method "MacOSX") > (keyboard-translate ?\C-h ?\C-?) > ;; 全角記号類「!”#$%&’()=~|`『+*』<>?_」を入力できるようにする > (mac-add-key-passed-to-system 'shift) > ; > (tool-bar-mode 1) > ; > ;; ウィンドウ(フレーム)のサイズ設定する(まだ使ってない) > ; (setq default-frame-alist > ; '((width . 100) (height . 60))) > ; > (require 'recentf) > (recentf-mode 1) > ; > =========ここまで > > CarbonEmacsでは、Emacs23の.emacs.d/init.elで起動してもC-Shift-j(C-J)・C-Shift-' (C-")が効きます。 > > なにかキー入力のシステムへの渡り方の問題のような気もしますが、簡便な修正方法はあるでしょうか。 > > どなたかご教示よろしくお願いいたします。 > > -- > KYUSHIMA Masahiro, MD > Division of Cardiology, > Chief, Division of Medical Informatics, > Okinawa Chubu Hospital, Okinawa, Japan. +81-98-875-6743(fax) > http://sheemer.blogspot.com/index.html > http://www.ryukyu.ne.jp/~sheemer/ > > _______________________________________________ > Macemacsjp-users mailing list > Macem****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/macemacsjp-users