viエディター

viの起動

  • viの起動
$ vi [ファイル名 ...]

指定されたファイルが無い場合は新規作成モードとなる。ファイル名にはワイルドカード(‘*’, ‘?’など)も使用可能。

コマンドモードへ移るためのキー

  • コマンドモードへ移るためのキー
コマンド 説明
Esc コマンドモードへ切替

編集モードへ移るためのテキスト入力キー

  • 編集モードへ移るためのテキスト入力キー
    コマンド 説明
    i カーソルの左に文字を挿入
    I カーソル行の行頭に文字を挿入
    a カーソルの右に文字を挿入
    A カーソル行の行末に文字を挿入
    o カーソル行の下の行に空行を作って文字を挿入
    O カーソル行の上の行に空行を作って文字を挿入
    cw 対象の単語を消して文字を挿入(つまり、変更)
    cc 対象の1行を消して文字を挿入(つまり、変更)
    c^ カーソル位置から行頭までを消して文字を挿入(つまり、変更)
    C カーソル位置から行末までを消して文字を挿入
    (n個)cw 対象の単語を消して文字を挿入(つまり、変更)
    (n個)cc 対象の1行を消して文字を挿入(つまり、変更)
    (n個)c^ カーソル位置から行頭までを消して文字を挿入(つまり、変更)
    (n個)C カーソル位置から行末までを消して文字を挿入

変更

  • 変更
    コマンド 説明
    r文字 カーソル位置の文字を指定文字に変更
    (n個)r文字 カーソル位置の文字を(n個)指定文字に変更
    R 複数文字置換(現在のカーソル位置から置換)
    J その行の末尾の改行をスペースに置換(つまり連結)
    (n個)J その行の末尾の(n個)改行をスペースに置換(つまり連結)
    カーソル位置の文字を小文字/大文字変換
    cw(Change Word) 1語変更
    c$ カーソル位置から行末まで変更

削除

  • 削除
    コマンド 説明
    x 1文字削除
    dw 1語を削除
    dd 1行を削除
    d^ カーソル位置から行頭までを削除
    d$ カーソル位置から行末までを削除
    (n個)x 1文字削除
    (n個)dw 1語を削除
    (n個)dd 1行を削除
    (n個)d$ カーソル位置から(n個)行末までを削除
    :g/文字列/d(Enter要) 指定文字列のある行を全て削除

コピー・ペースト

  • コピー・ペースト
    コマンド 説明
    y 1文字コピー
    yw 対象の単語をコピー
    yy 対象の1行をコピー
    y^ カーソル位置から行頭までをコピー
    y$ カーソル位置から行末までをコピー
    p 削除(コピー)した文字列をカーソルの後にペースト
    P 削除(コピー)した文字列をカーソルの前にペースト
    (n個)y (n個)文字コピー
    (n個)yw 対象の(n個)単語をコピー
    (n個)yy 対象の(n個)行をコピー
    (n個)y$ カーソル位置から(n個)行末までをコピー
    (n個)p 削除(コピー)した文字列をカーソルの後にペースト
    (n個)P 削除(コピー)した文字列をカーソルの前にペースト

カーソル移動キー

  • カーソル移動キー
コマンド 説明
h(←) 左へ(行間移動しない)
j(↓) 上へ
k(↑) 下へ
l(→) 右へ(行間移動しない)
w 次の単語へ
b 前の単語へ
e カーソルを単語末尾へ(すでに単語末尾なら次の単語の末尾へ)
^ カーソルを行頭へ
$ 行末へ
G 文末へ
前行の行頭へ
0 行頭へ
[Enter] 次の行の先頭へ
1G 文頭へ
nnG nn行目へ
(n個)h(←) (n個)左へ(行間移動しない)
(n個)j(↓) (n個)上へ
(n個)k(↑) (n個)下へ
(n個)l(→) (n個)右へ(行間移動しない)
(n個)w (n個)次の単語へ
(n個)b (n個)前の単語へ
(n個)e (n個)カーソルを単語末尾へ(すでに単語末尾なら次の単語の末尾へ)
(n個)$ (n個)行末へ
(n個)G (n個)文末へ
(n個)- (n個)前行の行頭へ
(n個)[Enter] (n個)次の行の先頭へ

カーソル画面移動キー

  • カーソル画面移動キー
コマンド 説明
H カーソルを画面先頭へ
M カーソルを画面真中へ
L カーソルを画面最終行へ
ctrl + d 1/2画面下へ
ctrl + u 1/2画面上へ
ctrl + f 次画面へ
ctrl + b 前画面へ
(n個)H カーソルを(n個)画面先頭へ
(n個)M カーソルを(n個)画面真中へ
(n個)L カーソルを(n個)画面最終行へ
ctrl + d 1/2画面下へ
ctrl + u 1/2画面上へ
(n個)ctrl + f 次(n個)画面へ
(n個)ctrl + b 前(n個)画面へ

検索

  • 検索
コマンド 説明
/正規表現 前方検索
?正規表現 後方検索
n 次の候補
N 前の候補

置き換え

  • 置き換え
コマンド 説明
:1,$s/正規表現/置き換え文字列/g(Enter要) 文書内の全ての「正規表現」を「置き換え文字列」に置換
:s/正規表現/置き換え文字列/g(Enter要) 行の全ての「正規表現」を「置き換え文字列」に置換
:1,$s/文字列A/文字列B/g(Enter要) 文書内の全ての「文字列A」を「全て文字列B」に置換
:s/文字列A/文字列B/g(Enter要) 行の全ての「文字列A」を「全て文字列B」に置換

ファイル操作

  • ファイル操作
コマンド 説明
ZZ セーブして終了
:w(Enter要) セーブするが終了しない
:w ファイル名(Enter要) 名前を付けて保存
:q (Enter要)セーブせずに終了
:q!(Enter要) 変更した行もセーブせずに終了
:wq(Enter要) セーブして終了
:e ファイル名(Enter要) ファイルを開く

その他

  • その他
コマンド 説明
.(ドット) 直前の変更操作の繰り返し
(n個)u 直前の(n個)変更操作の取り消し(何回でも戻れる)
:r xxx ファイル xxx の内容を次の行に挿入
:r! xxx OSの xxx コマンドを実行し、その結果を次の行にに挿入
:h 日本語マニュアルを表示