viコマンド(vimコマンド)一覧(検索・置換)



「vi」は、UNIX/Linux ユーザなら一度は聞く「emacs(mule)」に並ぶ主要なエディタです。 またviエディタを基にして機能を拡張したものが、vim(vi improved)エディタです。

「vi(vim)」には「入力(挿入)モード」「コマンドモード」 があり、各モードによって行えることが異なりますので注意してください。

スポンサードリンク

起動・ファイルを開く

起動時は「コマンドモード」になっています。

キー入力 動作
vi ファイル名 対象ファイルを開く(複数ファイル可)
vi +n ファイル名 n 行目から対象ファイルを開く
vi -r ファイル名 壊れたファイルのリカバリ

入力、編集

コマンドモード」でここのコマンドを入力すると「入力(挿入)モード」になります。

キー入力 動作
i カーソルの左から入力開始
I 行頭から入力開始
a カーソルの右から入力開始
A 行末から入力開始

なお「入力(挿入)モード」で「ESC キー」を押すことで「コマンドモード」に切り替わります。

保存、終了(コマンドモード)

キー入力 動作
ZZ vi を終了(内容が変更されている場合は保存)
:wq ファイルに保存、vi を終了
:#,# w #行目から#行目までを保存
:q vi を終了(内容が変更されいる場合は警告)
:q! vi を強制終了(内容が変更されていても保存しない)

バッファ(コマンドモード)

一度開いたファイルはバッファとして管理されます。

キー入力 動作
:ls バッファリストの表示
:b バッファ バッファを表示
:bn 次のバッファを表示
:bp 前のバッファを表示

カーソル移動(コマンドモード)

スポンサードリンク

1 G (gg)
ファイル先頭
Ctrl-u
半画面戻る
H
画面最上に戻る
[n] k
n 行戻る
k、Ctrl-P
1行戻る
0
行頭
[n] h
n 文字戻る
h、BS
1文字戻る
l、SPACE
1文字進む
[n] l
n 文字進む
$
行末
j、Ctrl-N
1行進む
[n] j
n 行進む
L
画面最下に進む
Ctrl-d
半画面進む
G
ファイル末尾

削除、コピー、貼り付け (コマンドモード)

[n] +キー入力と書いているものは、n 文字(行)分の処理も可能です。

キー入力 動作
[n] x カーソル上の1文字削除
[n] X カーソルの左の文字を1文字削除
[n] d 目的語
d [n] 目的語
目的語一覧:
dw - カーソル位置から空白を含む単語の末尾まで削除
de - カーソル位置から空白を含まない単語の末尾まで削除
d$ - カーソル位置から行末まで削除
d0 - 行先頭からカーソル位置まで削除
dG - カーソル行からファイル末尾まで削除
dd - 1行削除切り取り(カット)
df[文字] ... カーソル位置から[文字]の現れるところまで削除
[n] yy 1行バッファにコピー
p バッファ内のテキストを挿入(文字はカーソルの右、行はカーソルの下に挿入)
P バッファ内のテキストを挿入(文字はカーソルの左、行はカーソルの上に挿入)
:r [ファイル名] ファイルの中身を挿入する

検索(コマンドモード)

less や man コマンド内でも利用する標準操作です。

キー入力 動作
/<文字列> 文字列 を検索する(順方向)
?<文字列> 文字列を検索する(逆方向)
n 順方向へ検索する
N 逆方向へ検索する
% (,[に対して対応する ),] や } を検索

置換、変更(コマンドモード)

キー入力 動作
r カーソルの下の文字を置き換える
[n] c 目的語
c [n] 目的語
目的語一覧:
w - 単語の一部を変更する
$ - 行の一部を変更する
:s/[old]/[new] [old]を[new]に置換する
現在行の最初の old を new に置換する :s/old/new
現在行の全ての old を new に置換する :s/old/new/g
2つの # 間で語句を置換する :#,#s/old/new/g
ファイルの中の全ての検索語句を置換する: :%s/old/new/g
'c' を加えると置換の度に確認を求める :%s/old/new/gc

位置とファイル情報 (コマンドモード)

キー入力 動作
CTRL-g ファイル内での位置とファイルの状態を表示
[n] Shift-g ファイル内のn行に移動(nが無ければファイル末に移動)

ウインドウ操作 (コマンドモード)

キー入力 動作
:sp [ファイル] ウインドウを横に分割
:vs [ファイル] ウインドウを縦に分割
: q , :only カーソルのあるウィンドウ以外を全部閉じる
:new 空の横ウインドウを開く
:vnew 空の縦ウインドウを開く
Ctrl-w w 次のウインドウに移動
Ctrl-w p 前のウインドウに移動
Ctrl-w o 現在のウインドウ以外を閉じる

取り消し、繰り返し、再描画 (コマンドモード)

キー入力 動作
u 直前の操作を取りやめる
U 行全体の操作を取りやめる
Ctrl-R 取り消しの取り消し
. 直前の操作の繰り返し

外部コマンドの利用 (コマンドモード)

キー入力 動作
:! [外部コマンド] 外部シェルコマンドが実行
U 行全体の操作を取りやめる

その他 (コマンドモード)

キー入力 動作
:set number、 :set nu 行番号を表示
:set no number、 :set nonu 行番号の表示をやめる
:set showmode 現在のモードを表示
:set showmatch () や {} の対応を報告
:set ignorecase 大文字/小文字の区別なく検索
:set autoindent 自動インデントモード
:set noautoindent 自動インデントモードをやめる
:set all すべてのオプションを表示
:e [ファイル] ファイルを開く
:syntax on キーワードをハイライト表示する
:vert diffsplit [ファイル] 今のファイルと、他のファイルとの差分を取るコマンド
:Tutorial 30分程度のVi利用方法のチュートリアル

スポンサードリンク

オススメ書籍

人気の高い書籍および参考文献を紹介します。

スポンサードリンク