CarbonからCocoaへ--Snow LeopardでEmacs 23を使う(3)
“Cocoa EmacsことMac OS Xで動かすEmacs 23”シリーズの3回目は、初期設定ファイル「~/.emacs.d/init.el」について。Emacs Lispで書くなど文法そのものは旧来のEmacs同様だが、インラインパッチに含まれる拡張命令もあるため、この場を借りて数回にわたり解説してみよう。
Metaキーの設定
Cocoa Emacsでは、CommandキーとOptionキーの挙動が変更されている。Carbon Emacsまでは、デフォルトでCommandキーがMetaキーにアサインされていたのだが、これがOptionキーに変更されてしまった。手クセは治りそうにもないので、以下の記述をinit.elに書き加えてCommandキーをMetaに、OptionをSUPERキー(Winキー)に入れ替えている。
;; Command-Key and Option-Key (setq ns-command-modifier (quote meta)) (setq ns-alternate-modifier (quote super))
ドラッグ&ドロップよ、もう一度
Carbon Emacsのときから便利に使っていたドラッグ&ドロップも、Cocoa Emacsで仕様が変更された。デフォルトでカーソル位置に挿入する動作となり、従来のファイルを開く操作(M-x find file/C-x f)ではなくなってしまったのだ。これは困る……というわけで、以下の記述を加えてfind-fileに入れ替えた。
;; for Drag and Drop (define-key global-map [ns-drag-file] 'ns-find-file)
しかし、この記述では期待どおりにはいかず……ns-win.el(Emacs.app/Contents/Resources/lisp/term/ns-win.el.gz)の実装が進んでいないためか、新規バッファではなく新規ウインドウが作成されてしまうのだ。しかもふだん使用しているウインドウとは外観が異なる始末。
そこでdefault-frame-alistを定義し、とりあえずウインドウデザインがちぐはぐになる問題を回避した。新規ウインドウで開かれてしまう仕様は相変わらずだが、しばらくこの状態で使い続けようかと思う。
;; for Drag and Drop (define-key global-map [ns-drag-file] 'ns-find-file) ;; My Window-Design (if window-system (setq default-frame-alist (append (list '(width . 80) '(height . 30) '(background-color . "RoyalBlue4") '(foreground-color . "LightGray") '(cursor-color . "dim gray") ) default-frame-alist)) )
- ホワイトペーパー

