こんにちは。iOS / Mac 開発担当の宮本です。
いつも Emacs で Objective-C を書く話をしていますが、今回は Objective-C とは関係ありません。
Mac で Emacs ユーザーか、Emacs を使ってみようかなと考えている方向けのお話をします。
Emacs でファイルの保存は C-x C-s ですね。
よく使うのに 2 ストロークで大変です。
なので、私はそんなものは使いません。
Command-s で保存です。
実は、コピー、カット、ペーストですら全部 Command キーでやります。
Emacs は実は超簡単
Cocoa なアプリケーションであれば、次のようなキーボードショートカットが設定されています。Emacs を使ってない方でも、プログラマであればこれらのショートカットを使っているのではないでしょうか。
これは Emacs のキーバインドそのものです。
C-f | 1文字前に移動 |
C-b | 1文字後ろに移動 |
C-n | 1行下に移動 |
C-p | 1行上に移動 |
C-k | 行末までカット |
C-y | C-kでカットしたものをペースト |
C-a | 行頭へ移動 |
C-e | 行末へ移動 |
C-d | delete |
次は Cocoa ではおなじみの Command キーを使ったショートカットです。 Cocoa Emacs なら Emacs 標準のショートカットに加えて、これらをサポートしています。
Command-s | 保存 |
Command-v | ペースト |
Command-x | カット |
Command-c | コピー |
Command-z | 取り消す |
Command-a | すべて選択 |
Command-f | 検索 |
このように他の Cocoa アプリケーションとほとんど同じなわけです。
あとは
C-space | マーク(Spotlight と衝突するのが残念) | C-x C-b | バッファ切り替え | C-x C-f | ファイルを開く |
ぐらい覚えれば、それほど困らないレベルで使えます。 Mac でエディタを探している方は、すぐに Cocoa Emacs を使い始めてみてはどうでしょうか。
使えるキーバインドがない時は
色々な拡張を入れだすと、なかなか使えるキーバインドがありません。他とかぶらないものとなると、どうしても 2 ストロークなので覚えられずに結局使わないなんてことになってしまいがちです。
そこで、Command キーです。
Emacs には Control キーと Meta キー以外に Hyper キーや Super キーが設定できます。 ちょうど Command キーは Super キーに割当たっているので、これを使います。
試しに、よく使う割に使いにくい Window 操作系のものを Command キーを使うように設定してみましょう。
;; ウィンドウを切り替える (define-key global-map (kbd "s-o") 'other-window) ;; ウィンドウを閉じる (define-key global-map (kbd "s-0") 'delete-window) ;; 他のウィンドウを閉じる (define-key global-map (kbd "s-1") 'delete-other-windows) ;; ウィンドウを左右で分割 (define-key global-map (kbd "s-2") 'split-window-vertically) ;; ウィンドウを上下で分割 (define-key global-map (kbd "s-3") 'split-window-horizontally)
まとめ
Cocoa の基本的なショートカットになれているのであれば、Cocoa Emacs はもはや使えるようなものです。使いにくいキーバインドは Commnad キーを使うものに変更して Cocoa 色に染めてしまいましょう。
Mac じゃないから Command キーがないよという場合は、Super キーに何か別のキーを当てればいけるかと思います。