ラーメン二郎を参考に、EmacsでRails開発出来るようにしてみた

この記事は、ドリコム Advent Calendar 2014 - Adventar の24日目の記事です。

23日目は、[Tomofusaさん](http://tomofusa.hatenablog.com/entry/2014/12/23/221753)さんによる、「技術の意思決定プロセスとCTO（少し）について」です。
<br>


> 自己紹介

社内では、パヤオって呼ばれています。
大学では、画像認識とか学びながらKinectやPaPeRoやNaoと戯れていました。
ドリコムには新卒で入社し、今年2年目となります。
現在は[ドロップコミック](http://dropcomics.drecom.jp/)というアプリで、サーバサイド(Rails)を担当しています。

ちなみに好きな食べ物は、焼き肉、寿司、二郎です。
寿司のネタは、ビントロとサーモンが好きです。
![10457299_10201873990161867_1528553434_o.jpg](https://qiita-image-store.s3.amazonaws.com/0/24831/ed2bb984-1764-6bb6-87ea-bce9c2f9312b.jpeg)
※ 写真は、大阪にある「[春駒](http://tabelog.com/osaka/A2701/A270103/27002205/)」のサーモンです。
<br>

> 今日のネタ

今回の記事は、
二郎を食べる手順を参考に、普段の業務(Rails)でEmacsを使えるようにしてみる
流れを書いてみました。

大学時代にちょっとEmacs使っていましたが、入社してからはsublimeしか使っておらず、久しぶりにEmacsを使いたくなった(気がした)ので、**<font color="#ff0000">今日の定時後(18:30)に</font>**、Emacsの設定周りを久々にいじってみました！
<br>

> 精神統一(環境準備)

まずは、Emacsで書き出す前に、Emacsのキーバインドに慣れる必要があります！
二郎で言うと、この黄色の看板の前で、二郎の匂いを嗅ぎながら気分を二郎にして待っている状態の事です。

![10593234_641500622633765_388071193120716266_n.jpg](https://qiita-image-store.s3.amazonaws.com/0/24831/733184f4-eb55-35b1-5525-062e449979fc.jpeg)


Emacsでは、鬼軍曹という素晴らしいElispがあるので、まずはこのElispを入れて、Emacsに慣れましょう。
## 鬼軍曹.el
鬼軍曹.elは、Emacsキーバインドを身につけるにはとっておきのElispです！
僕がEmacsを使い始めた頃に、友達が勝手に鬼軍曹を入れてくれて、Emacsのキーバインドを身につけました。
最初の頃は、矢印とかが使えなくなったので、ストレスが貯まってましたがすぐに慣れていきました。

導入手順
・まず、[鬼軍曹.el](https://github.com/k1LoW/emacs-drill-instructor)から、drill-instructor.elを落とす。
・elispを置く場所を作る

```shell:.emacs
 $ mkdir .elisp
 $ cp Download/drill-instructor.el .elisp/
```

・.emacsの中に、下記の設定を書く

```elisp:.emacs
   ;; ロードパス
  (setq load-path(append load-path'("~/.elisp/")))
 
   ;; 鬼軍曹の設定
   (require 'drill-instructor)
   (setq drill-instructor-global t)
   ```

・Emacs再起動！
![スクリーンショット 2014-12-24 19.56.43.png](https://qiita-image-store.s3.amazonaws.com/0/24831/bbc426ab-020f-40c0-b20a-8e3e2bc1493c.png)

こんな感じで、deleteキーとか使うと怒られます！
<br>

> 戦闘準備

二郎では、食券を買って席に着いたら、いつラーメンが出されてもすぐ食べれるように、ペットボトルのお茶の蓋を開けて待ちます。
![10860721_10202997864018011_846690521_o.jpg](https://qiita-image-store.s3.amazonaws.com/0/24831/c15664c8-a2f3-4070-3591-610418827e17.jpeg)

Emacsでも、いざRailsで開発する事になっても良いように、Railsでも高速にEmacsを使えるように準備する必要があります。

### オススメElisp
以下のElispを入れると、良い感じです。(時間の関係上、導入方法省略... ｺﾞﾒﾝﾅｻｲ!!!)

* [ruby-mode](https://github.com/jwiegley/ruby-mode)
 Ruby用　ソースコードの色、インデントが良い感じ


* [ruby-block](https://github.com/adolfosousa/ruby-block.el)
 endにカーソルを持って行くと、doの所をハイライトしてくれる。

* [ruby-electric](https://github.com/qoobaa/ruby-electric)
  doと書いたら、自動でendが入って閉じてくれる。

* [rinari](https://github.com/eschulte/rinari)
 Rails用　ファイル間の移動がものすごく楽になる！
<br>

> 戦闘開始

![10148466_10201391649063641_362523863_o.jpg](https://qiita-image-store.s3.amazonaws.com/0/24831/16424c4d-5565-0e6e-cce1-87472b7a7b27.jpeg)



席についてしばらくすると、店主と目が合います。
これは、呪文は何するか？と、聞かれているのです！
オススメ呪文：　「ニンニク野菜辛め」

Emacsでも、更に使いやすくする為に以下のトッピングを.emacsに書きます！

```elisp:.emacs
;; 対応する括弧を光らせる
(show-paren-mode 1)

;; yes-noをy-nに置き換え
(fset 'yes-or-no-p 'y-or-n-p) 

;; M-xでコマンドを入力するときに候補を表示する
(icomplete-mode 1)  

;; status-barにカーソルの位置を表示
(column-number-mode t)

;; バックアップファイルを作らない
(setq backup-inhibited t)

;; ファイル名補完で大文字小文字を区別しない
(setq read-buffer-completion-ignore-case t)
(setq read-file-name-completion-ignore-case t)

;; C-jで補完
(global-set-key "\C-j" 'dabbrev-expand)

;; インデントはタブではなくスペースを使用
(setq-default indent-tabs-mode nil)

;; 行末の空白をハイライト
(setq-default show-trailing-whitespace t)



```

<br>
> 最後に

今回お話した二郎を食べる手順を参考にして、是非二郎に行ってみてください！


ドリコムアドベントカレンダー最終日の明日25日目は、とっておきのネタを時限設定して、海外へ飛び立たれた[@dearboy15](http://www.adventar.org/users/4993)さんです。