@uents blog

Code wins arguments.

Mac OS X YosemiteにGNU Emacsをインストール

前回の記事でHomebrewを導入 しましたが、その続きでGNU Emacsをインストールします。

Emacsのインストール

検索するとhomebrew版とhomebrew-cask版の両方がヒットしますが、

% brew search emacs
emacs                 #=> homebrew版
Caskroom/cask/emacs   #=> homebrew-cask版

homebrew-caskの方はCLIがない上にCocoaアプリ(Emacs.app)も表示崩れが起きて 使いものにならなかったので、homebrewの方をインストールします。

% brew install --cocoa emacs

install時に--cocoaオプションを付けることで、 Cocoaアプリ(Emacs.app)も合わせてビルドされます。

Emacsを起動

早速起動してみます。

CLIの起動

image

ターミナルアプリで以下のコマンドを入力します。

% /usr/local/bin/emacs"

さらに~/.zshrc等で以下のようにエイリアスを定義しておくと表示色も増えてよいかも。

alias emacs="TERM=xterm-256color /usr/local/bin/emacs"

Cocoaアプリの起動

Finderで/usr/local/Cellar/emacs/<version>/Emacs.appを探してクリック。

または、以下のようにシンボリックリンクを作成すると、Launchpadから起動可能に。

% cd ~/Applications
% ln -s /usr/local/Cellar/emacs/<version>/Emacs.app Emacs.app

または、CLI版と同様にaliasを付けるとターミナルアプリからも起動できてよいと思います。

emacs.app='open /usr/local/Cellar/emacs/<version>/Emacs.app'

基本的な設定

設定ファイル~/.emacs.d/init.elの基本的な設定だけを上げてみます。

日本語環境

UTF-8で統一。他のアプリとのコピペも楽です。

(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)

キーバインド

以下の設定で¥キーでバックスラッシュが入力できるようになります。

(global-set-key [?\] [?\\])  ;; \の代わりに\を入力

フォント設定 (Cocoaアプリの場合)

(if window-system
    (progn
      ;; フォント
      ;; (pp (font-family-list)) でfont-familyの出力可能
      (set-face-attribute 'default nil
                          :height 120 :family "Menlo"
                          )
      (set-fontset-font nil 'japanese-jisx0208
                        (font-spec :family "Noto Sans Japanese"))

またinit.elを開いた状態でM-x eval bufferと実行すると、 再起動しなくても即座にinit.elの内容が反映されて便利です。

OptionキーをMetaキーにする

個人的にはターミナルアプリ内(iTerm2+GNU Screen)のCLI起動でEmacsを使う事がほとんどなのですが、 OptionキーやCommandキーがMetaキーに割り当てられておらず不便なことがあります。

その場合は以下のように設定すると良いです。

iTerm2の場合

[iTerm]→[Preferences]から[Keys]タブを開き Left option key act as:のチェックを変更する。

image

ターミナルの場合

[環境設定]→[プロファイル]→[キーボード]を開き 「メタキーとしてoptionキーを使用」にチェックを入れる。

image

Caskによるelispパッケージの追加

elispパッケージをスマートに管理するためにcaskを導入します。 名前が紛らわしいですが、homebrew-caskとはまったく別モノです。

http://cask.readthedocs.org/

Caskのインストール

% brew install cask

Caskファイルの作成

~/.emacs.d直下にCaskという名前のファイルを作成し、 取得するelispパッケージリストを列挙していきます。

% cd ~/.emacs.d
% emacs -nw Cask

このファイルにはパッケージの取得元sourceと 取得するパッケージ名depends-onを単純に列挙します。

gnuやmelpaのような有名どころに所望のelispがない場合は、 以下のようにGitHubのURLを直接指定することもできて便利です。

;;;; source
(source gnu)
(source melpa)

;;;; packages
;;; helm
(depends-on "helm")
(depends-on "helm-ack")
(depends-on "helm-c-moccur")
(depends-on "helm-gtags")
(depends-on "helm-etags-plus" :git
            "https://github.com/jixiuf/helm-etags-plus.git")
;;; auto complete mode
(depends-on "auto-complete")
;;; yasnippet
(depends-on "yasnippet")

;;; ...

elispのインストール

% cask install

~/.emacs.d/.cask/<emacs version>/というディレクトリに elispの自動取得およびbyte-compileまで実行されます。

追加でパッケージをインストールしたい時は Caskファイルを更新しcask installを再実行すればよいです。

インストール済みのパッケージを更新したい場合はcask updateでOK。

elispのロードパス設定

~/.emacs.d/init.el に以下を追記するだけで、自動的に各種elispがロードパスに追加されます。

(when (require 'cask nil t)
  (cask-initialize))

また別の機会に具体的なelispパッケージを導入について書こうかなと思います。

最後に

手前味噌ながらGitHubに設定ファイルを置いています。良かったら参考にしてみてください。