自分がしょっちゅう忘れるから、メモ帳代わりの記事
vi概要
viとは?
unix系のOSに大体標準で入っているエディタ。コマンドモードと入力モードの2種類の状態がある。起動時はコマンドモードになっている。
モードとは?
- コマンドモード: カーソルの移動やコピー貼り付けなどを行うためのモード(ファイルへの文字の追記はできない)
- 入力モード: 文字を打ち込むモード(設定やOSによっては文字の削除が許されないこともある)
カーソルの移動1
カーソルの移動2
キー | 移動位置 |
---|
$ | 行末に移動 |
^ | 行頭(空白文字除く)に移動 |
0 | 行頭に移動(オーではなくゼロなので注意) |
G | 最終行に移動 |
1G | 1行目に移動(5Gと打つと5行目) |
カーソルの移動3
キー | 移動位置 |
---|
Ctrl + d | 半画面分下に移動 |
Ctrl + f | 1画面分下に移動 |
Ctrl + u | 半画面分上に移動 |
Ctrl + b | 1画面分上に移動 |
コマンドモードから入力モードへの切り替え
キー | 説明 |
---|
a | カーソルのいる次の文字から入力開始(apppendの略?) |
i | カーソルのいる前の文字から入力開始(insertの略?) |
r | カーソル上の文字を置換(replaceの略?このコマンドの後に文字を打ち込むと置換されたのちコマンドモードに戻る) |
R | カーソル上の文字を置換して次の文字に移動していく(rと違って1文字打つとコマンドモードに戻るわけではない) |
o | 今いる行の次の行から入力(新たに空白の行が挿入される) |
O | 今いる行の前の行から入力(新たに空白の行が挿入される) |
入力モードからコマンドモードへの切り替え
キー | 説明 |
---|
esc(エスケープキー) | 入力モードからコマンドモードに切り替え |
重要なコマンド達
キー | 説明 |
---|
u | やり直し |
Ctrl + r | やり直しの取り消し |
:w | ファイルへの保存 |
:q | viを閉じる |
:wq | 保存して終了 |
:q! | 保存せず終了 |
コピー
キー | 説明 |
---|
yy | 1行まるっとコピー |
y$ | 今カーソルがいる行から行末までコピー |
切り取り(削除)
viでは切り取りと削除が同じコマンドなので注意
キー | 説明 |
---|
dd | 1行まるっと切り取り(削除) |
d$ | 今カーソルがいる行から行末まで切り取り(削除) |
x | 1文字切り取り(削除) |
貼り付け
キー | 説明 |
---|
p | 今カーソルいる次の行に貼り付け(新たに行が挿入される) |
P | 今カーソルいる前の行に貼り付け(新たに行が挿入される) |
検索
キー | 説明 |
---|
/キーワード | 文字列検索(下方向に検索していく) |
?キーワード | 文字列検索(上方向に検索していく) |
n | 検索続行(今調べている方向にさらに検索) |
N | 検索続行(今調べている方向とは逆方向にさらに検索) |
置換
キー | 説明 |
---|
:s/置換される文字列/置換する文字列/g | 今いる行でのみ置換を行う |
:%s/置換される文字列/置換する文字列/g | ファイル内全域で置換を行う |
:3,10s/置換される文字列/置換する文字列/g | 3行目から10行目の間でのみ置換を行う |
:3,$s/置換される文字列/置換する文字列/g | 3行目から最終行の間で置換を行う |
おまけ
キー | 説明 |
---|
J | 今いる行と次の行を結合 |
数字 + コマンド | コマンドをその数だけ繰り返す(例えば、5jとすると5行下にカーソルが進み、10xとすると10文字削除される) |