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