vi基本コマンド

Mac を触り始めて、Linux のコマンドを広範囲に忘れていたのでメモします。

以下基本コマンドのみ(でもいっぱいある)

vi の起動

コマンド名 説明
vi filename ファイルを開くまたは新規作成する
vi Return キー 新規ファイルを開く (ファイル名は後で指定)
vi -r filename システムクラッシュ時のファイルを復元して開く
view filename 読み取り専用でファイルを開く

カーソル移動

コマンド名 説明
h 左に移動
j 下の行の先頭文字 (空白ではない) に移動
k 上に移動
l 右に移動
w ワード単位で右に移動
W (スペースで区切られた) ワード単位で右に移動
b ワード単位で左に移動
B (スペースで区切られた) ワード単位で左に移動
e 現ワードの最後の文字に移動
Return キー 下の行の先頭文字 (空白ではない) に移動
Back Space キー 左に移動
Space Bar キー 右に移動
H 画面の先頭行に移動
M 画面の中央行に移動
L 画面の最後行に移動
Ctrl-F 1 画面先のページを表示
Ctrl-D 半画面先にスクロール
Ctrl-B 1 画面前のページを表示
Ctrl-U 半画面前にスクロール

文字と行の挿入

コマンド名 説明
a カーソルの右にテキストを追加
A 行の末尾にテキストを追加
i カーソルの左にテキストを追加
I 行の先頭にテキストを挿入
o カーソルがある下の行にテキストを挿入
O カーソルがある上の行にテキストを挿入

テキストの変更

コマンド名 説明
cw カーソルのワード (またはワードの右側の部分) を変更
cc 行全体を変更
C カーソル位置から行の末尾までを変更
s カーソルの 1 文字をテキストに変換
r カーソルの文字を別の 1 文字に置換
J カーソルがある行とその下の行を連結
xp カーソルの文字とその右の文字を入れ替える
~ 大文字または小文字に変える
u 前回の変更などのコマンドを取り消す
U カーソルがある行に対する全変更を取り消す

テキストの削除

コマンド名 説明
x カーソルの文字を削除
X カーソルの左の文字を削除
dw ワード (またはワードの右側の部分) を削除
dd 行を削除
D ある行のうちカーソルから右側の部分を削除
dG カーソルがある行からファイルの最終行までを削除
d1G ファイルの先頭行からカーソルがある行までを削除
:5,10 d 5 行目から 10 行目までを削除

テキストのコピーと移動

コマンド名 説明
yy 行をコピー
Y 行をコピー
p (小文字) コピーまたは移動の対象行をカーソルがある行の下に挿入
P (大文字) コピーまたは移動の対象行をカーソルがある行の上に挿入
:1,2 co 3 Return キー 1 行目から 2 行目までを 3 行目の下にコピー
:4,5 m 6 Return キー 4 行目から 5 行目までを 6 行目の下に移動

行番号の設定

コマンド名 説明
:set nu Return キー 行番号を表示する
:set nonu Return キー 行番号を表示しない

大文字と小文字の区別

コマンド名 説明
:set ic Return キー 検索時に大文字と小文字の区別をしない
:set noic Return キー 検索時に大文字と小文字を区別する

カーソルのジャンプ

コマンド名 説明
G ファイルの最終行にジャンプ
1G ファイルの先頭行にジャンプ
21G 21 行目にジャンプ

検索と置換

コマンド名 説明
/string 文字列を検索
?string 文字列を逆方向に検索
n 検索方向の前方にある文字列を検索
N 検索方向の後方にある文字列を検索
:g/search/s//replace/g Return キー 文字列の検索と置換

画面のクリア

コマンド名 説明
Ctrl-L 乱れた画面をクリア (再表示)

編集中のファイルに対するファイルの読み込み

コマンド名 説明
:r filename Return キー カーソルがある行の下にファイルを挿入 (読み込み)
:34 r filename Return キー 34 行目の下にファイルを挿入 (読み込み)

保存と終了

コマンド名 説明
:w Return キー 変更を保存 (バッファをファイルに書き込む)
:w filename Return キー 指定されたファイルにバッファーを書き込む
:wq Return キー 変更を保存して vi を終了
ZZ 変更を保存して vi を終了
:q! Return キー 変更を保存しないで vi を終了