CarbonからCocoaへ--Snow LeopardでEmacs 23を使う(3)

海上忍
2010-03-18 11:19:05
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 “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))
)
  • 新着記事
  • 特集
  • ブログ