Masahiro KYUSHIMA
sheem****@ryuky*****
2011年 7月 30日 (土) 08:35:22 JST
こんにちは。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/