「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利用方法のチュートリアル |
スポンサードリンク
人気の高い書籍および参考文献を紹介します。
スポンサードリンク