Linux_vi操作方法

モード

  • コマンドモード: 起動直後のモード。下記コマンド等が使用可能。
  • 編集モード: i等で移行。"Esc"でコマンドモードに移行可能。

コマンド

コマンドモードから編集モードへの移行系

コマンド 説明
i カーソルの左側に文字を入力
I カーソルのある行頭に文字を入力
a カーソルの右側に文字を入力
A カーソルのある行末 に文字を入力
o カーソルのある行の次の行頭 に文字を入力
O カーソルのある行の前の行頭 に文字を入力

1文字-移動系

コマンド 説明
h
j
k
l

単語-移動系

コマンド 説明
w 次の単語の先頭 (word)
b 現在または前の単語の先頭
e 現在または次の単語の末尾

行-移動系

コマンド 説明
0 行頭
^ 行の最初の文字(スペースは除く)
$ 行末

行数指定-移動

コマンド 説明
行数G 「10G」と入力すると、10行目へ移動
G 最終行への移動

コピー/削除系

以下は編集数(1の場合は省略)+編集内容(y,d)+編集範囲(l,w,y,0,$)の形で指定する。
ex) yl : 1文字コピー
また、a~z(26個)を指定して名前つきでコピー/削除内容を保存できる。
ex) 2ayl: 2文字をaという名前にコピー
byl: 1文字をbという名前にコピー

コマンド 説明
y コピー
d 削除
l 1文字
w 1単語
<same_alphabet> 1行(コピーの場合はy指定、削除の場合はd指定)
0 カーソルから行頭まで
$ カーソルから行末まで

ペースト系

コマンド 説明
p カーソル の右側に貼り付け
P カーソル の左側に貼り付け

検索系

コマンド 説明
/<string> stringを検索(右下方向へ)
?<string> stringを検索(左上方向へ)
n 次の検索
N 前の検索

置換系

ちょっとコマンドが長いのでここだけテーブル無しで。

[[<first_line>,<last_line>|$]%]s/<String_1>/<String_2>/[g]

基本的には String_1からString_2に置換。
行頭で検索対象を指定し、行末のgオプションを指定すると対象範囲内が全て置換される。

終了系

コマンド 説明
:q 終了
:q! 強制終了
:w [<file_name>] 保存 [別名ファイルで保存]
:wq [<file_name>] 保存後終了 [別名ファイルで保存]

設定系 (数値設定以外はnoを付けると無効化)

コマンド 説明
:set ignorecase 検索パターンにおいて大文字と小文字を区別する。
:set wrapscan 検索がファイル末尾まで進んだら、ファイル先頭から再び検索する。
:set number 毎行の前に行番号を表示する。
:set ruler カーソルが何行目の何列目に置かれているかを表示する。
:set backup ファイルを上書きする前にバックアップを作る。

Reference