vi コマンドリファレンス

コマンドモードと入力モード

viは他のエディタと違い、「コマンドモード」「入力モード」があり、モードを切り替えて使用します。起動直後は「コマンドモード」になっていて、「入力モード」への切り替えコマンドを入力すると文字の入力が出来るようになります。ESCキーを押すといつでも「コマンドモード」に戻れます。操作がわからなくなったら、とりあえずESCキーを二回ほど押してみるのが良いかもしれません。

 

コマンド

■起動■

 

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

 

 

jobscale.jsx.jp

jsx.jp

jobscale