このエントリはおれのさぶらいむてきすと Advent Calendar 2013の5日目です。昨日は@s12btさんのおれのさぶらいむてきすとは日本語検索がうまくできないでした。
今日はいろがRubyで使える小技を紹介します。
ご存知の通り、Rubyではブロックを以下の2つの形で書くことができます。
do end
1 2 3 |
|
ブレース
1 2 3 |
|
ブレースの中が1行の時は、下のように書くことも多いと思います。
1
|
|
仕様上はdo end
の方が{}
より評価の優先順位が低いだけですが、読んだ時の印象が違うため、使い分けてるRubyistも多いはずです。
そして、最初はdo end
で書いたけどやっぱり{}
にしたいとか、{}
で書いたけどdo end
にしたいことって意外とあるんですよね。
でも、実際にやるとちょっと面倒です。do
まで行って{
に直して、end
まで行って}
に直して。{}
にしてみたら1行にしたくなって、改行も消したり。それなのに、後でやっぱりdo end
がよかった、なんてことになると本当に最悪です。
そこでおすすめしたいのが、Ruby Block Converterというプラグイン。Package Controlでインストールしたら、変換したいdo
とend
の間にカーソルを移動しましょう。
1 2 3 |
|
そして ctrl + shift + [ すると!!!
1
|
|
こうなります!! すごい!!! 一瞬!!!!
もちろん逆もできます。それどころか、ブロック引数があってもできます。例えば
1
|
|
だったら、{}
の間にカーソルを移動して ctrl + shift + ] !!!
1 2 3 |
|
おおー!! 便利!!! インデントもちゃんと自分の設定に合わせてくれるんですね!!!
なお、do end
から{}
にしたとき1行になるのは、元が3行のときだけです。つまり、
1 2 3 4 |
|
のように4行以上のときは
1 2 3 4 |
|
になります。なんて頭がいいんでしょう……
もちろんSublime Textですから、カーソルが複数あっても大丈夫です!! 全てのカーソルの場所でブロックを変換してくれます!!!
Rubyを使う人は是非Ruby Block Converterをインストールして、この気持ちよさを味わってくださいね!!!
明日は@kei_qさんです。よろしくお願いします!