Macで開発したい人のための基本的なことまとめ

私のように Ubuntu をずっと使ってきた人が Mac を使った時に抵抗がある部分を書いておきます

正直私は全部覚えているのですが，他人に説明するのが面倒なのでw

Xcode/Command Line Tools は導入済みであることが前提です

# Homebrew のインストール

何はともあれ Homebrew を入れましょう

[Homebrew — MacPorts driving you to drink? Try Homebrew!](http://brew.sh/)

公式サイトの下の方に書かれているコードを実行するだけです

（私が最初にハマったのですが）Homebrew は apt-get とは根本的に異なります

apt-get はバイナリが落ちてきますし，依存関係も壊れることはまずありません

しかし Homebrew はソースコードの URL とコンパイルオプションを所持しているだけなのでコンパイルが走って時間がかかりますし，一発でうまくいく保証は全くありません

しかし `brew info` とすれば様々な情報も取得出来ますし，`brew edit` とやれば Homebrew が所有する DSL （言語は ruby ですが，ruby の知識は必要ありません）を直接いじって設定を足すことも容易です

実際 Mac に最適なコンパイルオプションなどを各ツールで調べるのはかなり面倒なので，その辺りの情報が DSL として書かれているコンパイル支援ツールだと思って使えば，かなり心強い味方になってくれますので是非活用しましょう

パッケージ管理システムと思って利用するとすぐに破綻しますので気をつけてください

使用するには PATH の設定を変更する必要がありますので `brew doctor` の指示にしたがって警告を必ずなくしましょう

一つでも警告が残っていたらうまくいくことはまずないと考えてください

`brew info` と `brew doctor` は必須コマンドなので必ず覚えましょう


# iTerm2 の導入

デフォルトのターミナルでも困ることはないと思いますが，iTerm2 の方が便利なのでそちらをおすすめします

[iTerm2 - Mac OS Terminal Replacement](http://www.iterm2.com/#/section/downloads)

ここからダウンロードします

ただし Mountain Lion から Mac は App Store 外のアプリを動かすことができなくなっているので以下のページを参考にしてインストールしてください

[OS X Mountain Lionで、MacAppStore以外からのアプリを実行する方法 : ライフハッカー［日本版］](http://www.lifehacker.jp/2012/08/120806mountain_lionapp.html)

Test Releases の方が機能が豊富なのでお勧めですが，Test なので自己責任でお願いします

設定が豊富なので一度覗いてみると面白いと思います

また ⌘-w で iTerm2 が閉じてしまうとやるせない気持ちになるので __Preferences > Keys > Glocal Shortcut Keys__ に Action を ignore にして ⌘-w を追加するとよいです

--追記：
またコメントに書かれているように  Send Escape Sequence をした方が特に Emacs ユーザには快適なので自分に合わせた設定をしてください

# ls の色など

Mac はデフォルトでは .bashrc は空ですし，`ls` の色つけなどは無いです

では Ubuntu などのように .bashrc などに `alias ls='ls --color=auto'` とかすればよいかというと Mac の `ls` は BSD 由来のものでそのようなオプションは存在しません

単純に色を付けたいだけならば，

```bash:
export LSCOLORS=gxfxcxdxbxegedabagacad
alias ls='ls -G'
```

とすれば色がつきます

しかし Linux で一般的な GNU 由来の `ls` を使いたいという場合は，Homebrew で coreutils を入れるとよいでしょう

`ls` 以外にも様々なものをインストールしますので環境をあまり汚したくないなどの場合はインストールは控えた方が良いです

インストールした場合は元のコマンドと衝突しないようにプレフィックスとして `g` を付けた形で（ls は `gls`）使えるようになります

`brew info` に詳しい情報が書いてありますが，コマンド名も全て上書きたい場合は PATH を通す必要があります

私はどちらの場合でも対応できるように

```bash:
if [ -d /usr/local/opt/coreutils/libexec/gnubin ] ; then
  export PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH
  export MANPATH=/usr/local/opt/coreutils/libexec/gnuman:$MANPATH
  alias ls='ls --color=auto'
else
  export LSCOLORS=gxfxcxdxbxegedabagacad
  alias ls='ls -G'
fi
```

という風にして coreutils がインストールされていたら GNU 由来のものを使用できるようにし，入っていない場合は BSD の `ls` に色をつけるようにしています


# zsh

デフォルトの zsh は古いので Homebrew でインストールしましょう

その際，`brew install --disable-etcdir zsh` という風にインストールしましょう

詳しくは `brew info` を見ましょう

また Mac では `brew` コマンドは頻繁に使用するので補完がないのはつらいです

[zsh-users/zsh-completions](https://github.com/zsh-users/zsh-completions)

そこでこれを fpath に追加しましょう

`brew` 以外にも公式で対応していない様々なコマンドの補完ができるようになります

また `.zshrc` も Ubuntu などと共有できるようにしましょう

私は

```zsh:
[ -f $ZDOTDIR/.zshrc.`uname` ] && source $ZDOTDIR/.zshrc.`uname`
```

として Mac 依存の設定は `.zshrc.Darwin` に書くようにしています

またこうすると .zsh 周りの設定ファイルが増えるので `~/.zshenv` に

```zsh:.zshenv
export ZDOTDIR=$HOME/.zsh
```

として `~/.zsh` ディレクトリに設定を入れるようにしています

この `.zsh` ディレクトリを github にあげておくと便利です


# Java

文字コードが Shift JIS になっていておかしいので変えておきましょう

```bash:
alias javac="javac -J-Dfile.encoding=UTF-8"
alias java="java -Dfile.encoding=UTF-8"
```

を `.bashrc` あたりにやっておきましょう


# Emacs

[日本語環境のMacにEmacsをインストールする方法 - Qiita [キータ]](http://qiita.com/catatsuy/items/c3e4fe2e6c856c285880)

私の記事ですが，これを見ればインストールできると思います

先ほどの zsh のように環境依存のファイルを分けたい場合は

[init-loader.el と package.el を導入して快適 Emacs ライフ - Qiita [キータ]](http://qiita.com/catatsuy/items/5f1cd86e2522fd3384a0)

私の記事ですが，これを参考にすれば分けられます