今週末にLPIC101を受ける予定ですが、普段使っていない為、Viエディタの基本コマンドを覚えられなくて、メモ帳として、記憶を深めようと思います。
Esc
コマンドモード <=> 入力モード
入力モード:
vi [R]
i : カーソルの前にテキストを入力する (insert)
a : カーソルの後ろにテキストを入力する (ahead)
I : 行頭の最初の文字にカーソルを移動し、その直前にテキストを入力する (Insert)
A : 行末にカーソルを移動し、その直後にテキストを入力する
o : カレント行の下に空白行を挿入し、その行でテキストを入力する (open line)
O : カレント行の上に空白行を挿入し、その行でテキストを入力する
viのカーソル操作コマンド:
h : 1文字左へ移動する、左矢印(←)キーと同じ
l : 1文字右へ移動する、右矢印(→)キーと同じ
k : 1行上へ移動する、上矢印(↑)キーと同じ
j : 1行下へ移動する、下矢印(↓)キーと同じ
0 : 行の先頭へ移動する
$ : 行の末尾へ移動する
H : 画面の一番上の行頭へ移動する
L : 画面の一番下の行頭へ移動する
gg : ファイルの先頭行へ移動する
G : ファイルの最終行へ移動する
nG : ファイルのn行目に移動する
:n : ファイルのn行目に移動する
u : 直前の操作を取りやめる
i : コマンドモードから入力モードに変更し、カーソルの左から入力したい
:!ls viエディタを終了することなくカレントディレクトリにあるファイルを確認したい
viの終了、ファイル保存、シェルコマンドの実行
:q ファイルへ保存せずに終了する
:q! 編集中の内容を保存せずに終了する
:wq 編集中の内容を保存して終了する
ZZ 編集中の内容を保存して終了する
:x 編集中の内容を保存して終了する
:w 編集中の内容でファイルを上書き保存する
:e! 最後に保存した内容を復帰する
:r ファイルの内容をカレント行以降に読み込む
:! viを終了せずにシェルコマンドを実行する
:r! シェルコマンドの実行結果を挿入する
viの編集コマンド:
x : カーソル位置の文字を削除する(Delete)
X : カーソル位置の手前の文字を削除する
dd : カレント行を削除する
(x行目で1回目のdを押し、y行目で2回目のdを押す):x行目〜y行目までを切り取り
dw : カーソル位置から次の単語までを削除する
yy : カレント行をバッファにコピーする
p : カレント行の下にバッファの内容を貼り付ける (paste)
P : カレント行の上にバッファの内容を貼りつける (paste)
r : カーソル位置の1文字を置換する (replace)
-R : 読み取り専用でファイルを開くコマンド
yw : カーソル位置の単語をバファにコピーする
3YP : カーソルの行を含めて3行をコピーし、カーソルの上に挿入する
yyp: カーソルにある行をコピーし、下の行に挿入する
:5(5G) カーソルをファイルの5行目に移動する
vi検索コマンド
/パターン カーソル位置から後方に向かって指定したパターンを検索する
?パターン カーソル位置から前方に向かって指定したパターンを検索する
n 次を検索する
N 次を検索する(逆方法)
:%s/A/B/ 最初に見つかった文字列Aを文字列Bに置換する
:%s/A/B/g すべての文字列Aを文字列Bに置換する
viの設定変更
:set nu 行番号を表示する
:set nonu 行番号を非表示にする (:set nonumber)
:set ts=タブ幅 タブ幅を数値で指定する(:set tabstop)