ruby on vim yokohama.vim発表資料
DESCRIPTION
Yokohama.vim #5発表資料です。 Railsアプリケーション開発とサーバ/インフラ開発におけるVim活用について。 補足説明記事は以下です。 http://blog.srockstyle.com/event/146/TRANSCRIPT
Vimで捗るRuby開発2014/4/5 Yokohama.vim 小林 翔平@srocktyle
注意!
Vimmer歴短いけど頑張るのでよろしくお願いします
→サーバでviやってたから短期間で習得はできた
発表している人間は黒い画面中毒者なのでそれを前提に聞いてもらえるとマイルドな感じになります。
お前のvimrc見せろよ
ここおいときました
(フォローしてね)
https://github.com/srockstyle/vimrc
Shohei KobayashiBackend & ServerSide Engineer
My Profile
• 言語:Ruby、PHP、Perl、Python、JavaScript
• 元インフラエンジニア
• Github、Qiita、Twitter、Facebook:@srockstyle
なにしてる人なの?
• 女の子写真共有アプリSnapeeeを運営しているマインドパレットという会社でWeb&バックエンドを見てます。
• 設計、サーバ構築~フレームワーク選定からコーディングまで。
• 開発は全部Vimでやってるよ。
• なぜかエンジニア採用担当です。
今日のテーマ 「Ruby on Vim」
vimを使ったRuby開発だよ
はじめに活用事例
vimを使ったRuby開発だよ
アジェンダ
• VimでRuby on Rails開発
• VimとRubyでサーバ・インフラ面開発
• おまけ
第1部:Rails on VimRails開発はVimでやろーよ。
Railsやるとき主に使うプラグイン
• unite.vim
• neocomplcache.vim
• vim-rails
• unite-rails
• vim-endwise
• neosnippet
unite.vimって?
• 直感的なインターフェイスを提供するプラグイン
• unite-なんとかっていうプラグインいっぱい
• これがあるとないではRails開発が三倍違うぜ
unite-railsこれ最強。
三倍……だと......
とあるRailsプロジェクト
vi Gemfileとかやります
unite-rails発動
Unite rails/viewを実行
編集したいファイルを選択でエンターで開く
これの何がいいか
• Railsのフォルダ構造をなぞってファイルを開かなくてよい
• 2ステップで目的のファイルにたどり着ける
• タブ補完が普通に使える←重要
neocomplcache.vim
Shougoさん お世話になっております。 いつか会いたいです。 抱きしめたいです!
neocomplcache.vimって?• 補完機能をやってくれるプラグイン
• 一度プロジェクト内で使った変数はもちろん、関数とかもちゃんと補完してくれる。
vim-endwise
• if文とかdefとかのメソッド始まりがあったらendを自動入力してくれるプラグイン。
• 閉じ忘れとかなくなるYO!
使用例
!
• 上の例だとdef testとか書いて、enter押すと……
勝手に補完!
!
• 勝手に補完してくれます!
第一部まとめ
• unite、unite-rails、neocomplcache.vim、vim-endwiseあたりはとりあえずいれとけば捗るよ
• あとvim-railsとかあの辺は一応
• rubocopとかコーディングルール系もいれとくといいかも。
第二部 VimとRubyでサーバ・インフラ開発
~プログラミングできることが全てじゃないよ編~
活用事例の復習
こんな感じ。
サーバ/インフラでなぜVimが必要か
• Linuxにたいていviっていうvimの原型が入ってる
• viが使えるというのはサーバ設定をする上で超大事
• vimを覚えればviを自然と使えるようになるので、サーバ周りも学ぶのだいぶ楽になるよ!
声を大にして言いたいこと !
!
「vi使えないくせにエンジニア名乗ってんじゃねえ!」 !
!
~Linuxやるならviぐらい使えるようになろうね~
すいません取り乱しました
Rubyは?• Chefっていうサーバ構築ツールがあり、会社でそれの設定編集するのにVim使ってます。
• 設定ファイルがRubyで書かれているので、Rubyのプラグインいれとけばとりあえずかけます。
• 結構開いたり閉じたりを頻繁にするので、Emacsと違って素早くできるvimが一番便利です。
Chefのレシピ
基本Rubyプロジェクトです
• こんな感じ。
レシピ(設定)ファイルはこんな感じ
Chefとは別にサーバにログインして作業するときvi使うんだ
• サーバ設定においてviを扱える能力は必須。
• Chefでローカルで編集して自動プロビジョニングしてもvi使える使えないではやっぱり違う
• サーバエンジニア並みとはいわなくてもvimを使えるってことはvi使えるってことだからだいぶ楽だよ
時代はImutable Infra
• Imutable Infraをやる上でAWSをターミナルから叩けるのは必須
→vimからAWSコンソールいじれるプラグイン欲しい
→作れ!
インフラ開発のためのプラグイン欲しい
• Chefのプロジェクトを行ったり来たりできるvimのプラグインが欲しい。
• AWSコンソールいじれるプラグインほしい
• VagrantやDocker・・・
第二部まとめ• Chefというツールを使うときにvim使ってるしRubyのプラグインが生きてくるよ
• vimが使えるとvi使えるからサーバに入ったとき戸惑わなくて済むよ
• unite-chefが欲しいから誰か一緒に作ろう?(弱気)
今後の課題• Vimを立ち上げたままのrvmきりかえプラグイン欲しい(今いちいち立ち上げ直してる)
• unite-chefが欲しい(やっぱり:eからの移動面倒)
• unite-awsが欲しい(ターミナルからawsしたい)
だれか解決策教えて!
お願い
ここにいる何人かとvimプラグイン開発したいです!
勇者求む!
おまけ
Rubyエンジニア募集しているよ!
• マインドパレットではエンジニア募集してます。
• Rubyが必須、Javaができれば尚可。
• ChefとかRailsとかAWSとかHadoopとか、その辺のワードにぴんぴんくるひとは言ってね。
ご清聴ありがとうございました