blog

[vim]
# vimで開発してた話

この記事は foodison advent calendar 2015 の8日目の記事です。

初めまして、12月よりフーディソンで働いている斉藤と申します。

IT業界は3年目,PHPをメインで使っておりました。 取り立てて珍しい経歴もなく、ビジネスロジック半分、コピペ半分くらいな実績です。 時間はたっぷりありましたので、単純作業を効率化しようと導入したVimぐらいが特徴でしょうか。

アドベントカレンダー、とても面白いですね。

ジャンル?なにそれ?といった雰囲気ですのでVimについて書きます。Vimについて

本記事の目的は、私が今まで どのようなVimで作業を行っていたのか をまとめてみます。

なぜVim?

新人時代に、これから色々覚えていくうえで

  • 何を覚えることがが手っ取り早く作業ができるようになるのか

と考えました。

また、周りの先輩エンジニアを見て思ったことが以下です。

  • ショートカットキーたくさん使っている
  • マウスを使ってる先輩より使ってない先輩の方がカッコイイ

これらのことから大学の講義で使っていた vi を思い出し、Vimを覚え始めました。

強み

以下にパッと思いつくモノを挙げます

  • ショートカットキーで移動が早い
  • IDEに比べて動作が軽い
  • プラグインの導入で作業が捗る
  • CUIメインだと、シェルにすぐ移れる
  • 黒画面だと仕事してる感がある
  • カンファレンスが開かれるくらいには流行ってる
  • つよい

弱み

きっかけとなった昔の職場の開発環境

以前の会社の開発環境は、以下のようなイメージです。

  • os:Win7 Professinal 64bit
  • cpu:第三世代インテルi5
  • メモリ4GB
  • HDD:500GB
  • 21インチディスプレイ2枚

このマシンで、以下のようなソフトを使っていました。

  • Cyberfox 8タブ分くらい
  • ローカル開発環境VM 1G
  • firefox 開発画面確認用 2タブ分
  • ConEmu ターミナルソフトにminttyを使用
  • Excel

案の定メモリはかつかつで最初使っていたeclipseはウンともスンともでした。。 これがvimを使い始めたきっかけでした・・

ちなみにfoodisonの現在の環境は MacBookPro です。(どや)

おすすめのプラグイン

vimを使ってくと思うのですが、正規表現やマクロ、テキストオブジェクト等の深い機能以外の 単純なカーソル移動のキーのみで見ると、以外と覚える量は少ないです(所感)。

そこで、検索機能や範囲選択、補完等のIDEが持っている機能に近づける形でプラグインの導入を行っています。

以下に感動したプラグインを5点ほど紹介していきます。(おすすめ順) 画像、使い方は是非リポジトリにアクセスして見てみてください!


カラースキーマ Spacegray.vim Github

vimの画面の表示色を256色で表現することができます。 色々な色の組み合わせがあるのですが、私はこれが一番しっくりきました。

かっこよくておすすめです。

windowsだと、みなさんお馴染みpoderosaが256色に対応してい無いため、少し苦労しますね・・ Macだと一発で余裕です。

iterm2つよい

ファイルランチャー Ctrlp.vim Github

vimを最初使った時に感じたことは、:e でファイルを開くの辛い・・といったことでした。 IDEからプログラミングを始めてしまった身としては、必須かなとは思います。

こちらは現在のカレントディレクトリ配下のファイルをファイル名でインクリメンタルに探して開くことが出来ます。 それ以外にも、最近開いたファイル、vimのバッファ上(vimを立ち上げてから触ったファイル)のファイル全てを切り替えることができます。

emacsにもとても強力なhelm等がありますが、vimに慣れた身からするとこちらの方が・・となります(小声)

検索機能の強化、グラフィカルな検索 incsearch.vim Github

こちらはvimでよく使う「/」キーを使った検索をインクリメンタルかつ視覚的に行うことができます。

特に強いなと思うのは、検索に正規表現を使ってもインクリメンタルに表示が変わるというところです。

この動作を実現してるIDEってあるんでしょうか・・最近のIDE事情は詳しくないので是非知りたいところです・・

単語の表示箇所の確認 vim-anzu Github

プログラムを読んでいて、この変数どこらへんで使っているんだろ・・となることが多々あります。 検索しても良いのですが、「*」キーを押すと現在のカーソル位置の単語を検索することができます。

私はどうやら視覚的に分かりやすい。といったところに魅力を感じるようです・・

文字列の高速な検索 ag.vim Github

特定ディレクトリの配下の文字を探す際に、

vimが標準で持っているvimgrepを使う

シェルに戻ってgrepをする

等の方法があると思いますが、こちらは

検索が高速かつ

結果が視覚的に見え、

対象をすぐ開けます。

vim標準のvimgrepがかなり良い挙動をするため、必須では無いですが、 邪道なところも感じつつこのプラグイン、かなり好きです。


まとめ

私の元職場の貧弱な開発環境でもvimは実によく頑張ってくれました・・ vimを勧めて教えた後輩くんは常駐先のお客様の面談でvimがアピールポイントになった。といっていました。

vimを勉強することは、何となく少数派の側に回ったような、ちょっとしたワンポイントの自信にもなるのではないでしょうか。 お手軽かつ動作が軽い、使ってドヤ顔もできるvim,いかがでしょうか。




入社してちょっとのfoodisonですが、みなさんとても和気あいあいとしており、ウォーターサーバーにお菓子、

最新のMacBookPro (とてもうれしい) 等、正直こんな良い環境があるのか、と感じています。

こちらのWANTEDLYで採用情報乗ってます。 こちらのブログに興味を持っていただけた方は、是非確認していただけたら、いいね!とかもらえたらとても嬉しいです。

最後まで読んでいただきありがとうございます。皆様感謝です!