Vim完全バイブル 第1章 編集の基本

最近、至高のエディタ「Vim」の解説本「ViIMproved-Vim完全バイブル」を端から読んでいます。
読んだことを着実に身につけるためにも、簡単なメモを残していこうと思います。


「第1章 編集の基本」の内容は以下の通りです。

  • 準備
  • Vimの起動
  • 二つのモード
  • 基本操作のコマンド
  • Vimの終了
  • ヘルプの読み方
  • 同じコマンドの繰り返し
  • チュートリアル

準備

Vimを「Vimモード」で動作させるための準備。
ホームディレクトリに.vimrcを用意しておく。
この準備をしない場合、Vimは「Vi互換モード」で動作することになる。

$ touch ~/.vimrc

もしくは、Vim起動中に以下のコマンドを実行する。

:set nocompatible

Vimの起動

ターミナルで以下のコマンドを実行すると、新しいウィンドウが立ち上がってVimが起動し、fileの編集を開始できる。

$ gvim [file]

新しいウィンドウを立ち上げずにターミナル内でVimを起動する場合は、以下のようにすればよい。

$ vim [file]

二つのモード

Vimには以下の二つのモードがある。


通常モード(normal mode)
様々なコマンドを受け付けるモード。vi起動直後はこのモードになる。
コマンドモードでは基本的に文字入力を行うことはできない。

挿入モード(insert mode)
文字入力を行うモード。基本的にこのモードの時でないと文字入力はできない。
挿入モードになっている場合、ウィンドウ下に「-- 挿入 --」(もしくは「-- INSERT --」)と表示される。
もしくはCTRL-[を入力すると通常モードに戻る。


一般のエディタとは違い、Vimでカーソルを移動させたり文字を入力したりして編集していくためには、この二つのモードを行き来しなければならない。
その代わり、通常モードでは各キーに様々なコマンドが割り当てられていて、少ないキータイプでたくさんの操作を行えるようになっている。

基本操作のコマンド

通常モード時に使えるコマンドのキー割り当て一覧。
第1章では基本的なコマンドのみ紹介している。


カーソル移動

h 左にひとつ移動
j 下にひとつ移動
k 上にひとつ移動
l 右にひとつ移動


テキストの挿入(挿入モードに移行)

i カーソル位置からテキストを挿入(insert)
a カーソル位置の次の位置からテキストを挿入(append)
o カーソル位置の下に新しい行を追加し、テキストを挿入
O カーソル位置の上に新しい行を追加し、テキストを挿入


テキストの削除

x カーソル位置の一文字を削除
dd カーソル位置の行を削除


UndoとRedo

u 最後に実行したコマンドを取り消す(undo)
U 最後に編集した行の変更をすべて取り消す
CTRL-R 最後に実行したUndoを取り消す(redo)

Vimの終了

編集内容をファイルに保存してVimを終了する場合は、通常モードでZZと入力する。

ZZ

ファイルに保存せず終了する場合は、通常モードで:q!と入力する。

:q!

ヘルプの読み方

Vimはヘルプがとても充実している。
ヘルプを見るには以下のコマンドを入力する。

:help


ヘルプ内では通常モードと同様、hjklでカーソルを移動させることができる。
ヘルプを終了する場合はZZと入力する。
また、ヘルプ内のテキストでパイプ「|」で括られている言葉はハイパーリンクとなっている(例、|:help|)。カーソルをハイパーリンクに移動してCTRL-]を入力すると、リンク先の内容を表示される。戻るときはCTRL-Tを入力する。


ヘルプを表示する際に、あらかじめ参照したいヘルプのサブジェクトを指定することも可能。

x(カーソル位置の文字を削除)のヘルプを見る場合。

:help x

テキストを削除する方法についてのヘルプを見る場合。

:help deleting

CTRL-Aのヘルプを見る場合。

:help CTRL-A

挿入モード中のCTRL-Hのヘルプを見る場合。

:help i_CTRL-H

numberオプション(行番号を表示)のヘルプを見る場合。

:help 'number'


(追記 2008/07/31 07:44)
id:wakutekaから、:help CTRL-A:help ^aでもいけるよ!とアドバイスをもらいました。Thank you!
また、CTRL-Aは大文字である必要はなく、:help Ctrl-Aでも:help ctrl-aでも大丈夫です。
さらに、:help:hに省略できるので、:h ^aと入力するのが一番楽みたいです。

同じコマンドの繰り返し

コマンドの前に数字を入力することで、コマンドを繰り返し実行できる。
例えば、カーソルを9行下に動かしたい時に、jjjjjjjjjと入力する代わりに、9jと入力して実現することができる。
5ddとすれば、カーソル位置から数えて5行を一度に削除できる。
このコマンドの繰り返しはなかなか重宝するので覚えておくべし。

チュートリアル

UNIXでVimのチュートリアルを起動するには、コマンドラインから以下のコマンドを実行する。

$ vimtutor

UNIX以外の環境でVimのチュートリアルを動かす場合は、Vimのヘルプのtutorセクションを参照するとよい。

:help tutor

こんな感じで

1章ずつ読んでまとめていこうかなーと思ってます。いつまで続くかな。ニヤニヤ。
もっと色文字を使った方が読みやすくなるかも。