【vi】Linux vi のよく使う基本的なコマンド
vi とは
viはLinux系で利用出来るテキストエディタです。どんなLinux系OSにも搭載されてます。
例えばmacを使っていてGUIが起動しない場合でもCUI(英数字しか受け付けない真っ黒い画面)は立ち上がることが多いです。トラブルシューティングなどで設定ファイルの編集が必要な場合、vi を使って設定ファイルを編集しますが、コマンドを知らず編集すらできず諦めた経験はないでしょうか?
筆者もviを使い始めて5年は経ちますがまだ慣れません。でも、使えると「格好良い」です。
新入社員がviでオタオタしている横で「a、うちこむ、ESC、ZZで保存」なんて指示出来たら格好良いですよね。
まずはこの記事の「推奨度★★★」太字のコマンドを身につけて、vi初心者を脱却しましょう。
vi の3つのモード
viには3つのモードがあります。まずはこの3つを理解しましょう。
「通常モード」が基本です。良くわからない状態になったら、とりあえずEscを連打して通常モードに戻りましょう。通常モードに戻れば多少のミスはチャラです。
通常モード
起動直後やEscで他のモードから抜けた時の基本的なモードです。カーソルを移動したり、編集モードやコマンドモードに移行できます。
編集モード
テキストの編集をするモードです。文章を打ち込んだり[BS]で文字を削除できます。入力終了後は[Esc]キーを連打し通常モードに戻ってください。
R(shift+r)で置換モードにも出来ます。
コマンド入力モード
[:(コロン)]を押下するとコマンド入力モードになります。ファイルの保存や終了などのコマンドを実行します。
通常モードでの基本操作
通常モード:カーソルの移動
カーソルの現在位置を移動します。矢印キー(↑↓←→)が使える場合が多いですが昔のOSや端末によっては矢印キーで移動出来ないことがあります。
キー | 動作内容 | 推奨度 |
---|---|---|
■1文字の移動■ | ||
h | 左へ。← | ★★★ |
j | 下へ。↓ | ★★★ |
k | 上へ。↑ | ★★★ |
l | 右へ。→ | ★★★ |
■1単語の移動■ | ||
w | 次の単語の先頭へ | ★★☆ |
e | 次の単語の末尾へ (カーソルが単語内の時は現在の単語の先頭へ) | ★★☆ |
b | 前の単語の先頭へ (カーソルが単語内の時は現在の単語の先頭へ) | ★★☆ |
■現在行内でのカーソル移動■ | ||
0 | 行頭 | ★★★ |
^ | 行頭。最初の文字 | ★★☆ |
$ | 行末 | ★★★ |
■特定行へのカーソル移動■ | ||
1G | 先頭行へ。カーソルは行頭。 | ★★★ |
G | 最終行へ。カーソルは行頭。 | ★★★ |
[数]G | [数]で指定した行へ移動。カーソルは行頭。 | ★★★ |
通常モード:画面単位のスクロール
キー | 動作内容 | 推奨度 |
---|---|---|
■1画面分のスクロール■ | ||
Ctrl + f PageDown | 1画面下へスクロール | ★★★ |
Ctrl + b PageUp | 1画面上へスクロール | ★★★ |
■半画面分のスクロール■ | ||
Ctrl + d | 半画面下へスクロール | ★☆☆ |
Ctrl + u | 半画面上へスクロール | ★☆☆ |
通常モード:削除(クリップボードへ切り取り)
キー | 動作内容 | 推奨度 |
---|---|---|
■文字の削除(切り取り)■ | ||
x | カーソル下の1文字削除(切り取り) | ★★★ |
[数]x | カーソル下から[数]文字削除(切り取り) | ★★★ |
[数]dw | カーソル下から[数]単語削除(切り取り) | ★★☆ |
d0 | 行頭からカーソルの直前まで削除(切り取り) | ★☆☆ |
d$ | カーソル位置から行末までを削除(切り取り) | ★☆☆ |
■行の削除(切り取り)■ | ||
dd | 1行削除(切り取り) | ★★★ |
[数]dd | [数]行削除(切り取り)。[数 | ★★★ |
通常モード:クリップボードへコピー
キー | 動作内容 | 推奨度 |
---|---|---|
■文字のコピー■ | ||
yl | カーソル下のコピー | ★★★ |
[数]yl | カーソル下から[数]文字コピー | ★☆☆ |
[数]yw | カーソル下から[数]単語コピー | ★★☆ |
y0 | 行頭からカーソルの直前までコピー | ★☆☆ |
y$ | カーソル位置から行末までをコピー | ★☆☆ |
■行のコピー■ | ||
yy | 1行コピー | ★★★ |
[数]yy | [数]行コピー | ★★★ |
通常モード:貼り付け
キー | 動作内容 | 推奨度 |
---|---|---|
■文字の貼り付け■ | ||
p(小文字のp) | カーソルの右側に貼り付け | ★★★ |
P(大文字のP) | カーソルの左側に貼り付け | ★★☆ |
■行の貼り付け■ | ||
p(小文字のp) | 現在カーソル行の下行に貼り付け | ★★★ |
P(大文字のP) | 現在カーソル行の上行に貼り付け | ★★☆ |
通常モード:検索
キー | 動作内容 | 推奨度 |
---|---|---|
■下方向へ検索■ | ||
/キーワード | キーワードを検索(下方向へ) | ★★★ |
n | 下方向へ次を検索 | ★★★ |
N | 上方向へ前を検索 | ★★★ |
■上方向へ検索■ | ||
?キーワード | キーワードを検索(上方向へ) | ★★☆ |
n | 上方向へ次を検索 | ★☆☆ |
N | 下方向へ次を検索 | ★☆☆ |
通常モード:置換モード
キー | 動作内容 | 推奨度 |
---|---|---|
■1文字置換■ | ||
s | 1文字置換。置換後は入力モードになり文字入力を継続 | ★★☆ |
r | 1文字置換。置換後はコマンドモード通常モードに戻る | ★★☆ |
■複数文字置換■ | ||
R | 1文字ずつカーソル下を置換。ESCキーで終了 | ★★☆ |
■単語の置換■ | ★☆☆ | |
cw | カーソルの位置から単語の終わりまで置換 (カーソル位置の単語が削除され入力モード) | ★☆☆ |
通常モード:その他
キー | 動作内容 | 推奨度 |
---|---|---|
■やり直し■ | ||
u | 1つ前の操作を取り消し(Undo) | ★★★ |
■行の連結■ | ||
J | 1つ下の行が現在行に連結される(半角スペース) | ★★☆ |
■保存■ | ||
ZZ | 変更がある場合:保存してviを終了(:wq) 変更が無い場合:vi を終了(:q) | ★★★ |
ZQ | 変更を破棄して終了(:q!) | ★★☆ |
編集モードへの切替方法
通常モードから編集モードへの切替
キー | 動作内容 | 推奨度 |
---|---|---|
■1文字入力開始■ | ||
i | カーソル位置から文字入力を始める | ★★★ |
a | カーソルの右側かに文字を入力 | ★★★ |
■行頭、行末入力開始■ | ||
I | カーソル行の行頭に文字を入力 | ★★☆ |
A | カーソル行の末尾に文字を入力 | ★★☆ |
■下行、上行への入力開始■ | ||
O | カーソル上行に1行挿入し文字を入力 | ★★☆ |
o | カーソル下行に1行挿入し文字を入力 | ★★★ |
編集モードから通常モードへの切替
キー | 動作内容 | 推奨度 |
---|---|---|
■切替■ | ||
Esc | 通常モードへ戻る | ★★★ |
コマンドモードでの基本操作
保存
キー | 動作内容 | 推奨度 |
---|---|---|
■保存■ | ||
:w | 上書き保存 | ★★★ |
:w 別ファイル名 | 別ファイルに保存。 保存後も現在のファイルの編集が継続される (名前をつけて保存とは違う) | ★★☆ |
viを終了
キー | 動作内容 | 推奨度 |
---|---|---|
■終了■ | ||
:q | 終了(ただし最後に保存してからファイルに変更が無い場合) | ★★★ |
■変更がある場合の終了方法■ | ||
:q! | 変更を破棄して終了 | ★★★ |
:wq | 保存して終了 | ★★☆ |
■とにかく保存して終了■ | ||
ZZ | 【推奨】※通常モードで実行します 変更がある場合:保存してviを終了(:wq) 変更が無い場合:vi を終了(:q) | ★★★ |
行番号の表示・非表示
キー | 動作内容 | 推奨度 |
---|---|---|
■行番号を表示■ | ||
:set nu :set number | 行番号を表示 | ★★★ |
■行番号を非表示■ | ||
:set nonu :set nonumber | 行番号を非表示 | ★★☆ |
コマンドの履歴
キー | 動作内容 | 推奨度 |
---|---|---|
■コマンドの履歴■ | ||
: ↑ | 1つ前に実行した履歴を表示 | ★★☆ |
: ↓ | 次の履歴を表示 | ★★☆ |
記録モード
viには 記録モード(recording)と呼ばれるモードがあります。これは操作をマクロで登録し自動化するためのモードです。よほどの上級者でない限り使うことのないモードです。が、キーボードの誤押で意図せずこの記録モードになることがあります。記録モードになった時は落ち着いて「q」で通常モードに戻りましょう。
通常モードと記録モードの変換
キー | 動作内容 | 推奨度 |
---|---|---|
■記録モードへの移行■ | ||
q+[英数字] | マクロ記録モードに移行 | ☆☆☆ |
■記録モードの終了■ | ||
q | 記録モードを終了し通常モードに戻る | ★★★ |
最後に
最後まで記事をお読みいただきありがとうございます。文中の間違い、ご要望等ありましたらコメント欄にお願いします。
ディスカッション
コメント一覧
まだ、コメントがありません