vim の基本的なコマンド
Update: 2013-01-03
私が普段使っている編集用のコマンドです。 vim の拡張機能はほとんど使っていません。運用管理の仕事であればこのくらいの最小限のものと、「 ^z でコンソールに戻って fg で復帰」くらいできればだいじょうぶでしょう。人によってよく使うコマンドは違うだろうと思います。主にプログラミングしている人は 0 (ゼロ)じゃなくて ^ で行の先頭に移動したり、タグ機能を使ったりするでしょう。ここに挙げたものは vim じゃない vi でも u の動作が異なることを除くと、そのまま使えるのではないかと思います。正規表現で利用できる表記も違っていたかな? Ubuntu や Redhat系で vim に慣れてしまうと vi が使えなくなるんじゃないかという不安があって、カーソルキーはできるだけ使わないよう心がけていますが、そうすると bash のコンソールで h とか l とか打ってしまうんだなあ ^^;
h 左
j 下
k 上
l 右
G 最後の行に移動する
(n)G 先頭から(n)行目に移動する
^g 現在の行数を表示する
w 1語右(文字クラス基準?)
W 1語右(ホワイトスペース基準?)
b 1語左(文字クラス基準?)
B 1語左(ホワイトスペース基準?)
0 (ゼロ)行頭に移動
$ 行末に移動
i カーソルの前に挿入
I 行頭に挿入
a カーソルの後に挿入
A 行末に挿入
J 次の行と連結
o 次の行に挿入
O (大文字のオー)前の行に挿入
yw 1語コピー
yy 1行コピー
(n)yy (n)行コピー
x 1文字カット
(n)x (n)文字カット
dw 1語カット
(n)dw (n)語カット
D 行末までカット
dd 1行カット
(n)dd (n)行カット
p カーソルの後にコピー
P カーソルの前にコピー
cw "dwa"
(n)cw "(n)dwa"
C "Da"
cc "0Da" かな? "ddo" かな?
(n)cc "(n)0Da" かな? "(n)ddo" かな?
u Undo
^r Redo
/(re) (re)を下向きに検索
/ 下向きに繰り返し検索
?(re) (re)を上向きに検索
? 上向きに繰り返し検索
:%s/(re)/(rpl)/
全行を対象に置換、各行で最初に一致したものだけ
:%s/(re)/(rpl)/g
全行を対象に置換、一致したもの全て
:(m),(n)s/(re)/(rpl)/
(m)行目から(n)行目を対象に置換、各行で最初に一致したものだけ
:(m),(n)s/(re)/(rpl)/g
(m)行目から(n)行目を対象に置換、一致したもの全て
:set cin
cindent モード
.vimrc ファイルに書いておいてもいい`。
:set nocin
cindent モード解除
;set sw=2
インデント幅の設定
編集モードの ^t に影響する。タブ幅には影響しない。
.vimrc ファイルに書いておいてもいい。
編集モード用
^t インデント右
^d インデント左