プラグインなしvimで使える便利コマンド(補完・diff・文字コード表示・整形)

この記事は、Vim Advent Calendar 2012の47日目の記事です。昨日は @Shaula__さん の オレオレ貼り付け処理の実装 でした。

今日はプラグインなしのvim(初期状態)で使える、便利なコマンドを紹介させていただきます。

1.なんでプラグインなし?
プラグイン使ってこそのvimですよね。
私もpluginたくさん使っていますし、vundle+git でいつでもどこでも自分の環境を作れます。

しかしながら、会社の共有マシンにはpluginが入っておらず、導入には手続きというか、上司の目とか上司の目とか、、いろいろ面倒なこと、ありますよね。

「じゃあvimってあんまり使えないなー」ってお思いのアナタにこの記事を捧げます。


2.補完
eclipseだと”インテリ”とか言われてるあれです。
補完プラグインだとShougo/neocomplcache · GitHubとかAutoComplPop - Automatically opens popup menu for completions : vim onlineとかありますが、実は、プラグインなしでも出来るんです。プラグインなしでも出来るんです。
しかも使い方はとっても簡単。

<Ctrl+N>

これでバッファ内のテキストが補完されます。

#!/bin/sh

hoge='hoge'

h[カーソル]

上記の状態で <Ctrl-N>を押すと hogeと表示されます。
複数の候補がある時は、<Ctrl-N> <Ctrl-P>で補完先を選択して <CR>で決定です。
ちょっとスクリプト書いたりする時に重宝します。


3. 2ファイルの差分を表示

開発環境と本番サーバでなぜか挙動が違う。。そんなときに役立つdiffコマンドですが vim でも2つのファイルの比較をすることはできます。さらに、リアルタイムに修正した内容が反映され差分を埋めることが出来ます。これが、プラグインなしでも出来るんです。

またまた使い方はとっても簡単、2ファイルを開いた状態で

:windo diffthis<CR>

これで2つのファイルの差分が整形されて表示されます。
あとは、差分箇所を修正すると、リアルタイムで差分情報が更新され、2ファイルを同じ状態にすることが出来ます。


4. 文字のASCIIコードを表示

「a ← この文字のASCIIコードが知りたい!」
そんな時、どうしますか?
vimなら一瞬です。そう、プラグイン無しでね。
カーソルを文字に合わせて

:ascii

これでASCIIコードやらなんやらが画面下に表示されます。
不可視文字の判別もこれで簡単にできますね。


5. オートフォーマット

<?php
if ( $isEnableXXXX ) { echo 'hello';}

    if ( $isEnableYYYY ) 
    {
    if ( $isEnableZZZZ ) 
    {
    }
    }
?>

みたいなphpファイルを整形したい時は、整形したい範囲を選択して

=

これで

<?php
if ( $isEnableXXXX ) { echo 'hello';}

if ( $isEnableYYYY ) 
{
if ( $isEnableZZZZ ) 
{
}
}
?>

知ってると何かと役に立ちます。


6. 終わり
以上4つでしたが、この4つがあれば、他人のvimでも部長のvimでも怖いものなしです。
どんな環境でもvimを使いこしてこそvimmerたるもの、私ももっと精進します。

明日は、@ujihisa さんです。