Mac で開発環境を整える際に行ったことのメモ (主に自分用)

# 概要

- Finder の設定

- インストールするUnixコマンド
  - brew
  - wget

- キーボードやマウスの設定
  - キー配列の変更
  - 外部キーボード・外部マウス接続時の設定

- 日本語入力切替関連

- インストールするソフト
  - Firefox
  - Dropbox
  - Emacs

- IDE の設定
  - AndroidStudio
  - Xcode

- Ruby, Ruby on Rails での開発環境構築

# 動作環境
- OS X El Capitan
- バージョン 10.11.3


# Finder の設定
- Finder から Library フォルダを見れるようにする
  - Finder > 表示 > 表示オプションを表示 > "ライブラリ"フィルダ を表示 にチェック
  - 参考:
      - [Mac - Finder のホームフォルダに「ライブラリ」フォルダを表示](https://pc-karuma.net/mac-finder-library-folder/)

# インストールする Unix コマンド
- brew
  - 以下のコマンドで brew をインストール

    ```
    $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    ```

- wget
  - brew をインストールした後、以下のコマンドで wget をインストール

    ```
    $ brew install wget --with-libressl
    ```

- 参考:
  - [How to install wget in capitan mac 10.11](http://stackoverflow.com/questions/33886917/how-to-install-wget-in-capitan-mac-10-11)


# キーボードやマウスの設定
### '￥' を押したらバックスラッシュが入力されるようにする
- システム環境設定 > キーボード を選ぶ > 入力ソースタブを選択 > 「"yen"キーで入力する文字」にて, 「バックスラッシュ」を選択


### 外部キーボードの Caps Lock と Ctrl を入れ替える
- システム環境設定 > キーボード を選ぶ > キーボードタブを選択 >  修復キー ボタンを押下 > 「キーボードを選択」から、外部キーボードを選ぶ > Caps Lock と Ctrl を入れ替え

- 参考: [Mac OS XでCaps Lockキーを無効化したり、他の修飾キーに入れ替えたりする方法](http://inforati.jp/apple/mac-tips-techniques/system-hints/how-to-disable-caps-lock-key-of-mac.html)


### キーボードのキーが押しっぱなしと認識される時間を短くする
- システム環境設定 > キーボード を選ぶ > キーボードタブを選択 >  リピート入力認識までの時間を短くする


### ホイールの方向とスクロールの方向を調整 (外部マウスによる操作を主に行う場合)
- システム環境設定 > マウス を選ぶ > "スクロールの方向: ナチュラル" のチェックをはずす
  - ※外部マウスでホイールする場合はこれでよいが、トラックパッドで操作するときに不自然な感じがするので注意


# 日本語入力切替関連
※command + space,  外部キーボードの Alt + ~ で日本語入力切替できるようにするための設定


### command + space のデフォルトの挙動を OFF にする
- システム環境設定 > キーボード を選ぶ > ショットカットタブを選択 > 左ペインから Spotlight を選ぶ > チェックを全てはずす

  
### command + space で日本語入力切替ができるようにする
- システム環境設定 > キーボード を選ぶ > ショートカットタブを選択 > 左ペインから 入力ソース を選ぶ > 入力メニューの次のソースを選択 のショートカット部分をクリック > command + space を入力


### 外部キーボードで Alt + ~ で日本語入力切替ができるようにする
- システム環境設定 > キーボード を選ぶ > ショートカットタブを選択 >  左ペインから 入力ソース を選ぶ > 前のソースを選択 のショートカット部分をクリック > 外部キーボード上で Alt + ~ を入力 

- 参考:
  - [英語キーボードのMacにおける日本語入力の環境設定](http://kosu0621.blog88.fc2.com/blog-entry-1228.html)
  - [日本語入力 切り替えるにはどうすればいい？Macで入力文字を日本語/英語に切替るショートカットキーは？](http://mzstyle.net/nihongo-nyuryku-mac.html)

# インストールするソフト
## Firefox
### 追加するアドオンとその設定
- FireGestures
  - ↓ を無効にする
  - ↑ で新しい
  - 「新しいウインドウを開く」の無効化
  - ↓↑でタブを複製
  - 右クリック+上ホイールで前のタブ
  - 右クリック+下ホイールで次のタブ
- Firebug
- Tab Mix Plus
  - イベント > 新しいタブ
      - 他のタブを現在のタブの直後に開く、にチェック
          - 現在のタブに関連する場合のみ、のチェックを外す
          - タブを開く順番を変更する、のチェックを外す
  - イベント > タブを開く > 以下を新しいタブに読み込む > すべてにチェック
  - イベント > タブを閉じる > 現在のタブを閉じたときのフォーカスの移動場所: 右側のタブ
  - 表示 > タブバー > 一段に収まらない数のタブを開いた場合、タブバーを多段表示にする
  - セッション > Firefox 内蔵のセッション復元機能を使用する
- Adblock Plus


## Dropbox
- シンボリックリンクの指定

    ```
    $ ln -s ~/Dropbox/【ファイル名・フォルダ名】 ~/【リンク先】
    ```
  - ~/Dropbox でフォルダを作って、ホームディレクトリにそのシンボリックリンクを張って以後そこで作業する、という運用方針をとっている
  - ※カレントディレクトリがDropbox内でシンボリックリンクを作ると失敗するので注意


## Emacs
- brew を使ってインストール

    ```
    $ brew install --with-cocoa --srgb emacs
    ```

- Applications/ フォルダにシンボリックリンクを張る

    ```
    $ ln -s /usr/local/Cellar/emacs/24.5/Emacs.app /Applications
    ```

    - 参考: [EmacsForMacOS](https://www.emacswiki.org/emacs/EmacsForMacOS#toc14)


- Emacs Lisp
  - Emacs Lisp を配置するフォルダの作成

        ```
        $ mkdir ~/.emacs.d/elisp
        ```
  - 以下を .emacs に記述

        ```
       (setq load-path (cons "~/.emacs.d/elisp" load-path))
        ```

  - redo
      
        ``` 
        $ wget http://www.wonderworks.com/download/redo.el -O .emacs.d/elisp/redo.el
        ```
      
    - 以下を .emacs に記述
          
          ```
          (require 'redo)
          (global-set-key "\C-_" 'redo)
          ```

  - linum
      
      ```
      $ wget http://www.logic.at/prolog/linum/linum.el -O .emacs.d/elisp/linum.el
      ```

     - 以下を .emacs に記述

        ```
        (require 'linum)
        (global-linum-mode 1)
        (setq linum-format "%5d")
        ```

  - python-mode

    ```
    $ wget https://gitlab.com/python-mode-devs/python-mode/raw/master/python-mode.el -O .emacs.d/elisp/python-mode.el
    ```

     - 以下を .emacs に記述
      
        ```
        (require 'python-mode)
        (setq auto-mode-alist
             (cons '("\\.py$" . python-mode) auto-mode-alist))
        (setq interpreter-mode-alist
             (cons '("python" . python-mode)
                   interpreter-mode-alist))
        (autoload 'python-mode "python-mode" "Python editing mode" t)
        ```

- その他
  - flymake が上手く動かなかった
      - 原因は、シンボリックリンク上のファイルは上手く指定できないらしい、という flymake のバグらしい
      - 参考: [MacOSX上のEmacsで/tmp/以下のファイルにflymakeを適用すると死ぬ件の解決](http://qiita.com/hnw/items/ccb8499c965db999efbc)



# IDE の設定
## Android Studio
- 改行を LF にする
  - Android Studio > Preferences > Editor > Code Style > Line separator を Unix and OS X(\n) にする

- エンコーディングを UTF-8 にする
  - Android Studio > Preferences > Editor > File Encodings
      - IDE Encoding: UTF-8
      - Project Encoding: UTF-8
      - Default encoding for properties files: UTF-8

- 行番号の表示、スペースの表示
  - File > Settings > Editor > General > Apperance をクリック 
      - Show line numbers, Show whitespaces にチェック

- 半角スペースの色を少し濃くする
  - Android Studio > Preferences > Editor > Colors & Fonts > General
      - Scheme name: 右にある Save As を押して、新しい Scheme を作成 (名前は何でも良い)
      - Text > Whitespaces > Background 右のボックスを右クリック → #b0b0b0 に指定
      
- ファイル末尾が改行で終わるようにする
  - Android Studio > Preferences > Editor > General
      - Ensure line feed at file end at Save にチェック

- 自動 import
  - Android Studio > Preferences > Editor > General > Auto Import
      - Insert imports on paste value: All に変更
      - Optimize import on the fly: チェックを入れる
      - Add unambigious imports on the fly: チェックを入れる
      - (Kotlin セクション下) Add unambigious imports on the fly: チェックを入れる
      - (Kotlin セクション下) Optimize import on the fly: チェックを入れる

- Emacs 風のキーバインドにする
  - Android Studio > Preferences > Keymap をクリック
      - Keymaps: Emacs にする
      - Backspace: Ctrl+H
      - Enter: Ctrl+M
      - Select Current Lookup: Ctrl+M
      - Override Methods: Ctrl+Shift+O
      - (Navigate)Back: Ctrl+Shift+1
      - (Navigate)Forward: Ctrl+Shift+2
      - Line Comment: Alt+セミコロン
      - Undo: Ctrl+/
      - Redo: Ctrl+Shift+-

  - その他ショートカットの登録
      - Navigate > Back: Ctrl+1
      - Navigate > Forward: Ctrl+2
      - Navigate in File > Go to Implementation: 右クリック > Add Mouse Shortcut > Option+Click

## Xcode
### インストール
- App Store を開く > 右上にて xcode と入力 > Xcode をインストール
  - 初回は Apple ID の登録が必要
  - 初回起動時、ライセンス条約に Agree するかどうか聞かれる

### 各種設定
- 行番号を表示
  - Xcode > Preferences を選択 > Text Editing タブを選択 > Line numbers にチェックを入れる

- スペースを表示
  - Editor > Show invisibles
      - しかし、若干色が濃くて見辛くなってしまうため、非表示にしている
        

- キーバインドを emacs 風に変更
  - Xcode > Preferences を選択 > Key Bindings タブを選択
  - ファイル内検索
      - Find... (Find Menu): Ctrl + s

  - 改行
      - Insert Newline: Ctrl + m

  - Undo
      - Undo (Undo/Redo): Ctrl + /
      - Jump to Next Placeholder も Ctrl + / にアサインされているので、これを解除

  - Redo
      - Redo (Undo/Redo): Ctrl + Shift + -

  - Cancel
      - Cancel: Ctrl + g
      
  - Set Mark
      - Set Mark: Ctrl + Space
      - Show Completion と衝突するため、Show Completion のキーバインドを削除


# Ruby, Ruby on Rails での開発環境構築
## Ruby
- rbenv, ruby-build をインストール
  - rbenv は複数のバージョンの Ruby をインストールして切り替えるツール
  - ruby-build は rbenv に必要
    
    ```
    $ brew install rbenv ruby-build
    ```

- ターミナル起動時に rbenv を初期化するコマンドを実行させるようにする
    - 以下を .bashrc に追記する

        ```
        # Mac 環境なら、 rbenv を初期化するコマンドを実行する
        case "${OSTYPE}" in
            # Mac の場合
            darwin*)
                eval "$(rbenv init -)"
                ;;
        esac
        ```

- Ruby 2.3.1 をインストールする (適宜, 新しいバージョン番号に置き換える)

    ```
    $ sudo rbenv install 2.3.1
    ```

  - 事前に Xcode のライセンス条約への Agree が必要
    
  
- 端末にインストールされている Ruby のバージョンの確認

    ```
    $ rbenv versions
    ```

- 端末で "ruby" と打つと ruby 2.3.1 が起動するようにする

    ```
    $ rbenv local 2.3.1
    ```

- 端末を開き直して、ruby のバージョンを確認する (2.3.1 が起動することを確認)

    ```
    $ ruby -v
    ```

## Ruby on Rails
- Rails, Rails に必要な Gem パッケージを RubyGems でインストールする

    ```
    $ sudo gem install rails --version "4.2.6" --no-rdoc --no-ri
    ```


- バージョンの確認
    ```
    $ rails -v  
    ```

# その他
### Macintosh HD をデスクトップ or Finder に表示させる
- ※Macintosh HD は、Windows でいう「マイコンピューター」のこと
- Finder を開く > 環境設定 > 「一般」タブ > 「デスクトップに表示させる項目」の「ハードディスク」にチェック
  - ⇒ デスクトップに Macintosh HD が表示される
- Finder を開く > 環境設定 > 「サイドバー」タブ > 「ハードディスク」にチェック
  - ⇒ Finder のサイドバーに Macintosh HD が表示される
- 参考
  - [Windowsユーザーも必見！Mac初心者から中級者になるための6つのTips](http://liginc.co.jp/life/useful-info/49054)

### コマンドプロンプトの表示を cygwin のデフォルトの表示みたくする
- /etc/bashrc の PS1 の値を変更する

    ```
    $ sudo vi /etc/bashrc
    ```

  - 変更前

    ```
    PS1='\h:\W \u\$ '
    ```

  - 変更後

    ```
    PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u \[\e[31m\]\w\[\e[0m\]\n\$ '
    ```

  - ※cygwin のデフォルトのコマンドプロンプトの表示は以下の通りだが、ホスト名の表示が不要な気がしたので上記には含めなかった

    ```
    PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
    ```