viエディタについて
viエディタは、『コマンドモード』と『入力モード』の2種類があり、
モードを切り替えて操作を行います。
viエディタの起動直後は『コマンドモード』になっているので、
『入力モード』への切り替えコマンドを入力する事で文字の入力が出来るようになります。
尚、Escキーを押す事でいつでも『コマンドモード』に戻れます。
以下は、viエディタのコマンド・リファレンスになります。
viの起動
vi ファイル名 | 編集対象のファイルを開く(複数ファイルも可) |
vi +n ファイル名 | n 行目から表示する |
vi + ファイル名 | 最後一画面を表示する |
vi + /文字列 ファイル名 | 文字列が存在する行から表示する |
vi -r ファイル名 | 壊れたファイルをリカバリする |
viの終了
ZZ | viを終了(内容が変更されている場合は保存) |
:wq | ファイルに保存してvi終了 |
:q | viを終了(内容が変更されている場合は警告) |
:q! | viの強制終了(内容が変更されていても保存されない) |
カーソル移動
h 又は BackSpace | 1文字左へ移動(←) |
j 又は Ctrl-N | 1行下へ移動(↓) |
k 又は Ctrl-P | 1行上へ移動(↑) |
l 又は Space | 1文字右に移動(→) |
H | 画面の最上行に移動 |
M | 画面の中央行に移動 |
L | 画面の最下行に移動 |
G | ファイルの最終行に移動 |
n G | ファイルの n 行目に移動 |
0 | 行頭へ移動 |
$ | 行末へ移動 |
Ctrl-f | 1ページ下へ |
Ctrl-b | 1ページ上へ |
Ctrl-d | 半ページ下へ |
Ctrl-u | 半ページ上へ |
入力・編集
『コマンドモード』でここのコマンドを入力すると『入力モード』になります。
a | カーソルの右から入力開始 |
A | 行末から入力開始 |
i | カーソルの左から入力開始 |
I | 行頭から入力開始 |
o | 現在の行の下に1行挿入し、 その行頭から入力開始 |
O | 現在の行の上に1行挿入し、 その行頭から入力開始 |
J | 次の行と現在の行とを結合する |
3J | 下の2行を現在の行とを結合する |
削除
x | カーソル上の1文字削除 |
X | カーソルの左の文字を1文字削除 |
dd | 現在の行を削除(バッファにコピーされる) |
d n d | 現在の行から、n 行を削除 |
d 1 G | 現在の行から、ファイルの先頭までを削除 |
d G | 現在の行から、ファイルの最後までを削除 |
dw | カーソル上の一語を削除 |
df 字 | カーソル位置から指定した 字 までを削除 |
d$ | カーソル位置から行の最後までを削除 |
d^ | カーソル位置から行の先頭までを削除 |
:行1, 行2 d | 行1 から行2 を削除 |
置換
r | カーソル上の1文字を他の1文字に置換 |
R | カーソル上の文字からEscが 押されるまでの文字列を置換 |
s | カーソルのある1文字を他の文字列で置換 |
S | 現在の行を他の文字列で置換 |
cw | カーソル位置からこの語の最後までを置換 |
cf 字 | カーソル位置から指定した 字 までを置換 |
C | カーソル位置から行の最後までを置換 |
:s/置換え前/置換え後/ | 現在の行で、置換え前の文字列を、 置換え後の文字列で置換 もっとも近くにある文字列一つに 対してのみ実行 |
:s/置換え前/置換え後/g | 現在の行で、置換え前の文字列を、 置換え後の文字列で置換 |
:s/置換え前/置換え後/gc | 現在の行で、置換え前の文字列を、 置換え後の文字列で置換 (確認あり) |
:%s/置換え前/置換え後/ | 置換え前の文字列を、置換え後の 文字列で置換 もっとも近くにある文字列一つに 対してのみ実行 |
:%s/置換え前/置換え後/g | ファイルの中すべての文字列に対して、 置換えを行う |
:%s/置換え前/置換え後/gc | ファイルの中すべての文字列に対して、 置換えを行う (確認あり) |
~ (チルダ) | 大文字/小文字を変更する |
:& 又は & | 直前の s(置換) コマンドの繰り返し |
カット&ペースト
yy | 現在の行をバッファにコピー |
n yy | n 行分をバッファにコピー |
yw | 単語をバッファにコピー |
p | バッファ内のテキストを挿入 (文字、単語はカーソルの右に、行は現在の行の下に挿入される) |
P | バッファ内のテキストを挿入 (挿入位置はpの逆。文字、単語はカーソルの左に、行は現在の行の上に挿入される) |
ファイル操作
:w ファイル名 | 現在のファイル(指定ファイル)に保存 |
:w! ファイル名 | 書き込みを強行 |
:行1, 行2 ファイル名 | 行1 から行2 のテキストをファイルに保存 |
:w >> ファイル名 | 現行ファイルの最後に書き加える |
:r ファイル名 | 現在の行の次の行にファイルを 読み込み、挿入する |
:r | 現在の行の次の行に現在のファイルを 読み込み、挿入する |
:args | 編集ファイルの一覧を表示する |
:n | 複数個のファイル編集時、次のファイルを 編集対象とする |
:e# | 一つ前の編集ファイルに戻る |
:e!% | 現在のファイルを再ロードして、 最初から編集をやり直す |
:e | ファイル名 指定ファイルを編集対象とする |
:rewind | 現在のファイルの変更内容を保存して、 リストの最初から編集をやり直す |
:rewind! | 現在のファイルの変更内容を保存しないで、 リストの最初から編集をやり直す |