vi 操作メモ

早速ですが、vi 操作に関する備忘録です。vi 嫌い派の方でも以下の操作を覚えるとかなり便利ですよ。

特にワード移動とファイル間コピーを覚えるとカーソル移動やコピー&ペーストのためにホームポジションから手を離すことが苦痛になる程、viの印象が変わります。私もこれで vi 好きになり、(vi作者の)ビル・ジョイさんのファンになりました。(^o^)/


カーソル移動系

  • 1文字移動   : h、j、k、 l
  • ワード移動   : w、b、W、B
  • 行の先頭へ移動 : ^
  • 行の最後へ移動 : $


ファイル系 (vi aaa bbb ccc ddd のように同時に複数ファイルを取扱う場合)

  • 次のファイルへ移動 :「:n」
  • 前のファイルへ移動 :「:e#」

(補足)viはファイル移動前に全ての変更をファイルへ更新する必要が有ります

  • ファイル間コピー  :「:5,10ya a」 -> 「:e#」-> 「:pu a」

(解説)5〜10行をバッファaとしてyankしてから前のファイルへ移動し、aの内容をput
(補足)TeraTermなどでマウスを使って範囲を選択し、コピー&ペーストするとタブ文字が空白に変換されてしまいますがこの機能だと同じ内容がコピー可能です

  • ファイルの読込み直し:「:e!」

(補足)最後に保存した状態にロールバックできるので、vi操作に迷った時に便利です


応用編

  • 今のカーソル位置から1ワード分を変更    :「cw」
  • 今のカーソル位置から1ワード分をコピー   :「yw」
  • 今のカーソル位置から行の最後までをコピー :「y$」

その他

  • リピート

viはEscキーを押してから次のEscキーを押すまでの操作をキャッシュするのですが、「.」と入力すると同じ操作を繰返すことが可能です1ワード変更、1ワード移動などと組合わせると、圧倒的に便利です

他にもいろいろと機能が有りますが、これくらい覚えると vi が大好きになると思いますよ〜。(^o^)v