viのコマンドはこれだけ覚えておけば十分!

僕が日常的に使用するviのコマンドの一覧です。これだけ覚えておけば、viの操作で困ることはほとんどありません。

終了

通常終了
:q
強制終了
:q!
通常保存&通常終了
:wq
強制保存&強制終了
:wq!

保存

通常保存
:w
強制保存
:w!

カーソル移動

右に移動
l
左に移動
h
上に移動
k
下に移動
j
ファイルの先頭に移動
:0
ファイルの最後に移動
:$
指定した行に移動
:行番号

入力

現在位置から入力
i
次の文字から入力
a
次の行から入力
o

コピー

現在行をコピー
yy
複数行をコピー
(1) ms … (コピー開始行にマーク)
(2) me … (コピー終了行にマーク)
(3) :'s,'ey … (開始行〜終了行の範囲をコピー)
現在位置から行末までコピー
y$
現在位置から文字Cの直前までコピー
ytC … (Cは任意の文字)
現在位置から文字Cまでコピー
yfC … (Cは任意の文字)

削除

現在行を削除
dd
全ての行を削除
%d
複数行を削除
(1) ms … (削除開始行にマーク)
(2) me … (削除終了行にマーク)
(3) :'s,'ed … (開始行から終了行の範囲を削除)
現在位置から行末まで削除
d$
現在位置から文字Cの直前まで削除
dtC … (Cは任意の文字)
現在位置から文字Cまで削除
dfC … (Cは任意の文字)

貼り付け

直前にコピー・削除した内容を貼り付け
p

検索

文字列を下に向かって検索
/文字列
文字列を上に向かって検索
?文字列

置換

現在行の置換前文字列を一つだけ置換後文字列に置換
:s/置換前文字列/置換後文字列/
現在行の置換前文字列を全て置換後文字列に置換
:s/置換前文字列/置換後文字列/g
全ての行の置換前文字列を一つずつだけ置換後文字列に置換
:%s/置換前文字列/置換後文字列/
全ての行の置換前文字列を全て置換後文字列に置換
:%s/置換前文字列/置換後文字列/g

プログラム起動

編集中のファイルの名前を表示
:!echo %
編集中のファイルの内容をgrep
:!grep 検索文字列 %
カレントディレクトリを表示
:!pwd
カレントディレクトリの内容を表示
:!ls -ltr
cshを起動
:!csh
viで別のファイルを編集
:!vi ファイル名
操作の繰り返し
.
操作の取り消し
u
現在行と次の行の連結
J
困った時は
[Esc]


viとvimの両方で使える基本的なコマンドばかりです。LinuxUNIXに触る人は覚えておいて損はないと思います。