ITは芸術だ このページをアンテナに追加 RSSフィード Twitter

2012-01-01

僕がサクラエディタからVimに乗り換えるまで

はじめに

恐怖のエディタ、Vim。

僕はこの間までずっとサクラエディタを愛用していましたが、最近Vimを使うようになりました。

ええ、Vimです。あのVimです。Viでもいいけど。


Vim・・・使いこなしている人はそれだけで玄人っぽく見られる伝説のエディタ。


実際にVimを使えばすさまじいスピードのコーディングが可能になる。(らしい)


しかしそんな憧れだけで手を出しても大半の技術者は全く手に負えず、すぐに尻尾を巻いて元のエディタに舞い戻ってしまう恐怖のエディタ。


それがVimである。


・・・はい、僕の中でVimやViのイメージはそんな感じでした。

実際、Unix/Linuxマシンのターミナル上で何度か(いやいや)使ったことがありましたが、まあ扱いにくいのなんのって。


「カーソルは十字キーで動くけど、どうやって入力するの? 」

「えっ? "i"を押せ? 」

「入力が終わったらESC? なんでそんなことすんの?」

「コードを入力・・・あれ?なんかおかしいぞ?なんか入力できてない!?(←通常モードのままでコードを打ち込んだ)」

「もうあかん・・・。Windowsマシンに持ってきて、いつものサクラエディタで編集してから上書きコピーしようっと。そっちの方が絶対速い!」


・・・そんな感じの使い方しかできなくて、できれば一生避けて通りたいエディタでした。

(とか言いながら、「使えたらちょっとカッコいいかも」みたいな憧れはやっぱり片隅に抱えてたんですけどね〜。)


Vimを使おうと思ったきっかけ

実際、プログラマは長年やってるんですが、結構Windows上で開発することが多くて、Unix/Linuxのターミナルを触ることがほとんどなかったんです。

だから無理して覚える必要もないし、前職の頃から使っているサクラエディタで十分便利だと考えていました。


ところが、このところUnix/Linuxのターミナルを使わなきゃいけない案件がちょこちょこやってきて、毎回Windowsで編集というのも非効率に思えてきました。


「う〜ん、そろそろ覚えないとヤバいなあ。やってみるか、Vim・・・。(そして玄人っぽいプログラマにステップアップしてみるか♪)」


ということで、Vimを本格的にマスターする決心をしました。


Vimに乗り換えるまでの流れ

アウトラインだけまとめるとこんな感じです。

  1. チュートリアルサイトを参考にして手を動かす
  2. チートシートをプリントアウトする
  3. 動画でVimの機能をチェックする
  4. チートシート(Version 1.0)を完成させる
  5. Vimを実践で使う
  6. Vim標準のチュートリアルも活用する
  7. Vimをカスタマイズする
  8. コマンドを復習する
  9. さらに情報を収集する
  10. 定期的に復習を繰り返す

詳細は以下で説明します。


1. チュートリアルサイトを参考にして手を動かす

まず、以下のサイトをチュートリアルにして、実際にVimを動かしてみました。


Big Sky :: Learn Vim Progressively


なるほど、確かにサクラエディタにはない機能がたくさんあるぞ、ということは確認できました。

ただし、あくまでチュートリアルに従うだけなので、果たして実業務で使うことがあるのかどうか、確信はありませんでした。


2. チートシートをプリントアウトする

次に、以下のチートシートをプリントアウトしました。


vim-cheatsheet.pdf


いっぱいコマンドが載っていますが、一気に全部は覚えられないので、最初に読んだチュートリアルで紹介されているコマンドにだけ赤ペンでチェックを入れました。


3. 動画でVimの機能をチェックする

それから今度は以下の動画をチェックしました。


コーディングを3倍速くする! Vim入門 | CSS-EBLOG


Vimの使い方を実際に動かしながら解説してくれるので、結構勉強になります。


動画の中で説明されているコマンドとチートシートを見比べて、載っていないコマンドがあればチートシートに追記したりしました。


実際はコマンドが載っていないのではなくて、それはコマンドのコンビネーションだったりするのですが、細かいことはまだよく分からないので、とりあえず自分が知らないと思ったコマンドは追記していきました。


4. チートシート(Version 1.0)を完成させる

これでオリジナルのチートシートができあがります。

この時点でチートシートにはコマンドの中でも特に基本的なコマンドにチェックが入っていますし、チートシートには載っていないコマンドも追記されています。


たとえば、僕のチートシートはこんな感じです。


f:id:JunichiIto:20120101205015j:image:w360


5. Vimを実践で使う

さあ、このチートシートを片手にいよいよ実践に突入です。

これからはサクラエディタを完全に封印します。(もちろんWindowsのメモ帳も)

テキストファイルを編集する場合はVim一本に絞り込みます。

最初はある程度非効率になることを覚悟しながら、Vimだけでテキストファイルを編集します。


"i"を押してしまうと、ある意味メモ帳と同じような挙動になってしまうのですが、できるだけそのような使い方はせず、ノーマルモードと挿入モードを使い分けるように努力します。

また、Webなどで新しい知識を得た場合はチートシートに追記していきます。


もちろん、仕事だけでなくプライベートでもVimに一本化します。

Vimはプラットホームを選ばないので、どこでも使えるのが強みです。


6. Vim標準のチュートリアルも活用する

Vimを実務で使いながら、さらに修行をします。

Vimには標準でチュートリアルが付属しているので、これを活用します。

ちょっと長いですが、一気に全部終わらそうとせず、2〜3日に分けて終了させればいいと思います。


チュートリアルでvimエディタの使い方を覚えよう — 名無しのvim使い


7. Vimをカスタマイズする

Vimに慣れてくると、微妙に使い勝手が悪いような部分が見えてきます。

標準の設定だと色々な便利機能がOFFになっていたりするので、設定を変更しましょう。


Vimの設定は「vimrc」を変更するのですが、多機能すぎて素人にはよく分かりません。(僕もまだ十分理解できてません)

そこでネットで公開されているオススメ設定をそのまま拝借してみましょう。

サイトによって多少の違いはありますが、どのサイトにもある程度共通のオススメ設定が載っているはずです。


Vim初心者的導入メモ 2/3 「vimrc設定」編 - ナレッジエース


8. コマンドを復習する

そんなこんなで2〜3日ぐらい「Vim縛り」をやっていると、徐々にVim恐怖症は消えてくると思います。

おめでとうございます!これであなたも立派なVimmerです!!・・・と喜ぶのはまだ早いです。


もう一回チートシートを見直してください。


もう一回VimのTutorialをやってみてください。


あれ?Vimにこんなコマンドがあるなんて知らなかったぞ?何か便利そうやん!


と思うようなコマンドをいくつか再発見できるはずです。

最初のうちは基本的なコマンドや使い慣れたコマンドを利用するだけで必死になってしまいますが、余裕が出てくると新しい便利なコマンドにも気がつくようになってきます。

さらに「Vim力」をアップさせるために、そうした新しいコマンドも利用できるようになりましょう。


9. さらに情報を収集する

あとできれば、これまでチェックしていなかったVim関連のWebサイトや書籍をチェックしてみてください。

自分の知らないVimの使い方やコマンドのコンビネーションがまだまだあることに気づくはずです。

僕の場合はこの本を読みました。(職場の同僚から借りました)


Learning the vi and Vim Editors

Learning the vi and Vim Editors


また、チートシートも第2弾、第3弾を作ってみてください。

僕は上述のLearning Vimからリファレンスページをコピーして、チートシートを新たに作りました。

これらのチートシートをデスクの片隅置いて、「あんなことがしたい」「こんなことがしたい」と思ったときにチェックするようにしました。

さらに、一回使ったコマンドは再び使う可能性が高いので、赤ペンでチェックを入れました。


10. 定期的に復習を繰り返す

チートシートやVim関連情報は定期的に(月1回とか)復習することをお勧めします。

Vimに慣れてきたとしても、いつのまにか自分の知っているコマンドだけで作業をしてしまう可能性があるためです。

せっかくVimを使うのであれば、色んなコマンドを使いこなせるようになりたいものです。


まとめ

Vimのメリット

僕はこんな感じでサクラエディタからVimに乗り換えました。


実際に乗り換えてみると、Vimの便利さが分かります。

特にカーソルの移動がすいすいできるので、十字キーを連打する回数が減りました。

行単位や単語単位のコピー&ペーストなんかも速くなります。

あと、どんなファイルタイプでもCtrl + Pで変数名やキーワードの自動補完ができるのも便利です。


あー、こんなことができたらもっとVimは便利なのになー、と思うときはたいていその願いを叶えるオプションやコマンドがあるので、まずはネットを検索してみてください。

たとえばWindowsでクリップボードをVimと共有する場合も設定変更で実現できます。


vimエディタからクリップボードを利用する。 — 名無しのvim使い


また先ほども述べましたが、色々なプラットホームで使えるのでOSが変わってもテクニックの使い回しが可能です。

加えて歴史のあるエディタなのでネット上の情報も豊富です。


Vimのデメリット(?)

Vimに慣れてくると、今度はメモ帳的な動きをするエディタが嫌になるかもしれません。

たとえば、Visual Studioを使ったコード編集やOffice製品のドキュメント編集とか。


あと、間違ってVimコマンドをタイプして変な動きを招くこともあります。

VimでCtrl + Fは画面スクロールになりますが、これをブラウザでうっかりやってしまうと検索ダイアログが開きます。


たぶん、筋金入りの強者はこの辺も全部Vim仕様に置き換えていくんでしょうけど・・・。


勇気を出して踏み出せば、きっとあなたも立派なVimmer!

というわけで、以前の僕のようにVim恐怖症を患っているプログラマの方も、僕の体験談を参考にしてVimmerの仲間入りをしてもらえるとうれしいです。


ではこのへんで。

ujihisaujihisa 2012/01/03 12:41 http://vim-users.jp
というとても便利な情報の掲載されたページもあるので、参考になりそうです。

Becky_moniBecky_moni 2012/01/04 10:50 vimの記事を拝見しました。
私はMac使いなのでmacvimというエディタは知っておりましたが、
まだほとんど使えていません。
MacではCodaというエディタが優れものですが、サーバ側ではターミナルでVIを使っています。
このCoda+viがmacvimなのだと思うのですが、
ローカルのファイルとサーバのファイルを同じエディターで編集できたりするのか?
まだまだ理解不足で使い切れる範囲ではありません。
以前、zen-cordingがvimに搭載されてる動画をみましたが、感動しました。

ryo_aberyo_abe 2012/01/04 16:43 プログラマー歴4年目の24歳、ryo_abe と申します。
記事拝見しました。

自分は、「vimを使いこなせば必ずコーディングスピードが早くなる!」と信じて、
vimを使って1年ぐらいになりますが、まだまだ使いこなせておりません。。
時々サクラエディタ派や秀丸派の方々に「なんでvimなんか使ってるの?使いづらくね?」なんてバカにされることが多々あります。。><

でもvimを信じ、使い続けているのですが、なかなか使いこなせずにいて、ときどきサクラエディタ等に浮気をしてしまいそうになってしまうときが多々あります。

ですが、JunichiItoさんの本記事を拝見して色んな参考サイトを拝見して、自分のvim環境をカスタマイズしたり、vimの新たなコマンドを知ったりしたことにより、またvimへの自信を取り戻せそうです!!
本当にありがとうございました。

これからもvimを使い続け、立派なvimmerになれるように頑張ります!

vim病患者Avim病患者A 2012/01/08 01:08 早いうちに自分なりのvimrcを作っておくと長く使えて便利ですよ。Vimで近年流行りのテクニックをまとめているサイトが少ないので今度作ってみようと思います。

yoyo 2012/01/11 02:53 「LinuxがデスクトップPCの選択肢となりうるだろう」と信じていた頃、
WindowsでもLinuxでもMacでも困らないように、なるべくどのOSでも使えるソフトを使うようにしました。
デスクトップPCとしてのLinuxは未だに貧弱なので、Macに切り替えてしまいましたが、
あの頃を期にエディタはvi、IMEはSKK、音楽プレイヤはiPod nano(Linuxだとソフトはgtkpodを使っていました)を使うようにしました。
オープンソースなソフトはどのOSでも使えることが多いので重宝しています。

しかし、例えばIMEだと「Google日本語入力」という強力なソフトが出てきましたが、個人的には乗り換えることはできません。
SKKの操作性に慣れてしまったからです。

また、会社で僕のPCを誰かが触ることが万が一あったとしても、
カスタマイズしすぎているせいで、恐らく誰も触れないでしょう。

世の中の人と違う方向に行くとその代償は払う必要がある、ということを
これからviやSKKを本格的に使おうとされている方は心の片隅にでも入れておいた方が良いと思います。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証