ありがとう、vim。

皆様初めまして。6月よりアシアルに入社させていただいた、斉藤と申します。
主にWEB開発をメインとしたエンジニアとして入社しました。

前職でWEB開発、PHPを学び、現時点でPHP歴は2年程度です。
まだまだこの世界では、ひよっこですが、何卒よろしくお願い致します。

さて、そんな中、vimというエディタを使い始めて、半年が経ちました。
この半年で、vimを使って便利だ!と感じた操作をまとめてみます。
vimを使っている方々が書かれた記事の焼き直しになるのは承知の上ですが、ご覧いただけたらと思います。

* まずモードについて

vimには複数のモードがあります。それぞれ、
・ノーマルモード:閲覧、編集のための操作ができる
・挿入モード:普通のエディタのように文字入力を行うモード
・ビジュアルモード:範囲選択のこと。ノーマルモードでvを押す。
・コマンドラインモード:コマンドラインによる命令が実行できるモード。正規表現を使いたい時など。ノーマルモードで:を押すと入れる。

と、モードによって出来ることが違います。
とりあえず「すべてのモード時にescキーでノーマルモード」「ノーマルモード時にiで挿入モード」というモードの切り替えを覚えると、「今何モードだっけ?」という混乱が抑えやすいのではないでしょうか。

* 便利操作1:一行操作


カット:dd
コピー:yy
ペースト:p or P

vimではノーマルモードでddと押すと、その一行がカットできます。
で、続けてyy p or Pと押すと、カットした行がペーストできます。
(コメントより、修正させていただきました)

普通のエディタだと、一行を範囲選択してCtrl+x, Ctrl+cとかですね。
vimでは同じ操作をするのに、キー入力回数が圧倒的に少ない!
ちなみにコピーのことはvimではヤンクと言うそうです。

* 便利操作2:特定のHTMLタグの中身を操作(特にこれはすごい!!!)


範囲選択:vit
削除:<strike>xit</strike> dit

(コメントより、修正させていただきました)

例:


<li><a href='xxx'>aaa</a></li>

ノーマルモードでaタグが記述されている部分(<a href...> or </a>)か、aaaというテキストまでカーソルを持っていき、vitと押すと、なんと!
aタグで囲まれた部分(aaaというテキスト)だけ選択できます!
「HTMLタグを認識して、範囲選択できる」という機能はHTML編集において、素晴らしい機能ではないでしょうか。
さらに、liタグを記述してある部分(<li> or </li>)にカーソルを合わせ、vitと押すと、今度はliタグで囲まれた部分が選択できます。

この操作の後は、yでコピーするなりxで削除するなりで、簡単に編集できます。
この機能のおかげで、HTML編集がとても楽になりました。

* 便利操作3:コマンドラインモードでlinuxコマンドを叩く


:! grep xxxx % | wc

例えば、コマンドラインモードでこんな入力を行うと、wcコマンドを利用して、現在編集中のファイルのxxxxという単語の数が分かったりします(ubuntuサーバー上のvimなど、linuxコマンドが使える環境が前提)。


:! linuxコマンドを使う宣言
% 現在編集中のファイル 

を指しているみたいです。

と、半年vimを触ってみて自分が便利に感じた機能でした。あとはctagsなどを使って入力補完などを何とかすれば、普通のエディタ以上に使えるのではないでしょうか。
使い方次第で編集、検索、状態把握などなどが簡単に出来るのは素晴らしいですね!
プラグインなども豊富にあり、自分で使いやすいようカスタマイズできるのも、嬉しいです。

このvimのおかげで自分は作業効率が格段に上がったと思っており、この新しい職場でも何とかついていけている、という実感があります。

というvimへの感謝を表したところで、今回は終わりたいと思います。