みちのぶのねぐら

Logo 工作室 // 厚生部 // 政治局

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      インデント左