vi コマンドリファレンス
■起動■ | |
---|---|
vi ファイル名 | 編集対象のファイルを開く(複数ファイルも可) |
vi +n ファイル名 | n 行目から表示する |
vi + ファイル名 | 最後一画面を表示する |
vi + /文字列 ファイル名 | 文字列が存在する行から表示する |
vi -r ファイル名 | 壊れたファイルをリカバリする |
■カーソル移動■ | ||
---|---|---|
h , BS | 1文字左へ移動(←) | |
j , Ctrl + N | 1行下へ移動(↓) | |
k , Ctrl + P | 1行上へ移動(↑) | |
l , SPACE | 1文字右に移動(→) | |
H | 画面の最上行に移動 | |
M | 画面の中央行に移動 | |
L | 画面の最下行に移動 | |
G | ファイルの最終行に移動 | |
nG | ファイルの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 | 現在の行を削除(バッファにコピーされる) |
ndd | n 行、削除 |
dw | カーソル上の一語を削除 |
df 字 | カーソル位置から指定した字 までを削除 |
d$ | カーソル位置から行の最後までを削除 |
d^ | カーソル位置から行の先頭までを削除 |
:行1, 行2 d | 行1 から行2 を削除 |
■検索■ | |
---|---|
/<文字列> | 文字列 を検索する |
?<文字列> | 文字列を検索する(逆方向) |
n | 順方向へ検索する |
N | 逆方向へ検索する |
■置換■ | |
---|---|
r | カーソル上の1文字を他の1文字に置換 |
R | カーソル上の文字からEscが押されるまでの文字列を置換 |
s | カーソルのある1文字を他の文字列で置換 |
S | 現在の行を他の文字列で置換 |
cw | カーソル位置からこの語の最後までを置換 |
cf 字 | カーソル位置から指定した字 までを置換 |
C | カーソル位置から行の最後までを置換 |
:&, & | 直前のsコマンドの繰り返し |
:%s/置換え前/置換え後 |
置換え前の文字列を、置換え後の文字列で置換 もっとも近くにある文字列一つに対してのみ実行 |
:%s/置換え前/置換え後/g | ファイルの中すべての文字列に対して、置換えを行う |
~ (チルダ) |
大文字/小文字を変更する |
■カット&ペースト■ | |
---|---|
yy | 現在の行をバッファにコピー |
nyy | n 行分をバッファにコピー |
yw | 単語をバッファにコピー |
p |
バッファ内のテキストを挿入 (文字、単語はカーソルの右に、行は現在の行の下に挿入される) |
P |
バッファ内のテキストを挿入 (挿入位置はpの逆。文字、単語はカーソルの左に、行は現在の行の上に挿入される) |
■Undo・Redo■ | |
---|---|
u | 直前の操作を取りやめる |
U | 行全体の操作を取りやめる |
. | 直前の操作の繰り返し |
■ファイル操作■ | |
---|---|
:w [ファイル名] | 現在のファイル(指定ファイル)に保存 |
:w! [ファイル名] | 書き込みを強行 |
:行1, 行2 ファイル名 | 行1 から行2 のテキストをファイルに保存 |
:w >> ファイル名 | 現行ファイルの最後に書き加える |
:r ファイル名 | 現在の行の次の行にファイルを読み込み、挿入する |
:r | 現在の行の次の行に現在のファイルを読み込み、挿入する |
:args | 編集ファイルの一覧を表示する |
:n | 複数個のファイル編集時、次のファイルを編集対象とする |
:e# | 一つ前の編集ファイルに戻る |
:e!% | 現在のファイルを再ロードして、最初から編集をやり直す |
:e ファイル名 | 指定ファイルを編集対象とする |
:rewind | 現在のファイルの変更内容を保存して、リストの最初から編集をやり直す |
:rewind! | 現在のファイルの変更内容を保存しないで、リストの最初から編集をやり直す |
■終了■ | |
---|---|
ZZ | viを終了(内容が変更されている場合は保存) |
:wq | ファイルに保存してvi終了 |
:q | viを終了(内容が変更されている場合は警告) |
:q! | viの強制終了(内容が変更されていても保存されない) |
■UNIXコマンドの実行■ | |
---|---|
:!<コマンド> | <コマンド>を実行する |
:!! | 直前の<コマンド>を再実行する |
:sh | 一時的にシェルに戻る。exitでviに戻る。 |
■コマンドのフィルタリング■ | |
---|---|
!<コマンド> | <コマンド>を実行して結果を挿入 |
!!date | date の結果の挿入 |
!!tr A-Z a-z | カーソル行の大文字を小文字に変換 |
■テキスト入力の略記■ | |
---|---|
:ab <文字列> <置換え文字列> | <文字列>と入力すると<置換え文字列>に置き換えるように設定する |
:unab <文字列> | <文字列>の置き換え設定を解除する |
:ab | 一覧表示 |
■その他■ | |
---|---|
Ctrl + G | ファイル名、修正の有無、現在の行数などの情報が表示されます |
Ctrl + L | 画面を再表示 |
Shift + Q | exで編集をする |
vi | exからviに戻る |
■コマンド■ | |
---|---|
:set number, :set nu | 行番号を表示する |
:set no number, :set nonu | 行番号の表示をやめる |
:set showmode | 現在のモードを表示する |
:set showmatch | () や {} の対応の報告をするようになる |
:set ignorecase | 大文字/小文字の区別なく検索する |
:set autoindent | 自動インデントモード |
:set noautoindent | 自動インデントモードをやめる |
:set all | すべてのオプションを表示する |
■.exrcの例 (viの設定ファイル)■ | |
---|---|
set tabstop = 4 set showmode set autoindent set nonumber set showmatch |