【vi】Linux vi のよく使う基本的なコマンド

2021年5月31日アプリケーションlinux,viアプリケーション,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$カーソル位置から行末までを削除(切り取り)★☆☆
■行の削除(切り取り)■
dd1行削除(切り取り)★★★
[数]dd[数]行削除(切り取り)。[数★★★

通常モード:クリップボードへコピー

キー動作内容推奨度
■文字のコピー■
ylカーソル下のコピー★★★
[数]ylカーソル下から[数]文字コピー★☆☆
[数]ywカーソル下から[数]単語コピー★★☆
y0行頭からカーソルの直前までコピー★☆☆
y$カーソル位置から行末までをコピー★☆☆
■行のコピー■
yy1行コピー★★★
[数]yy[数]行コピー★★★

通常モード:貼り付け

キー動作内容推奨度
■文字の貼り付け■
p(小文字のp)カーソルの右側に貼り付け★★★
P(大文字のP)カーソルの左側に貼り付け★★☆
■行の貼り付け■
p(小文字のp)現在カーソル行の下行に貼り付け★★★
P(大文字のP)現在カーソル行の上行に貼り付け★★☆

通常モード:検索

キー動作内容推奨度
■下方向へ検索■
/キーワードキーワードを検索(下方向へ)★★★
n下方向へ次を検索★★★
N上方向へ前を検索★★★
■上方向へ検索■
?キーワードキーワードを検索(上方向へ)★★☆
n上方向へ次を検索★☆☆
N下方向へ次を検索★☆☆

通常モード:置換モード

キー動作内容推奨度
■1文字置換■
s1文字置換。置換後は入力モードになり文字入力を継続★★☆
r1文字置換。置換後はコマンドモード通常モードに戻る★★☆
■複数文字置換■
R1文字ずつカーソル下を置換。ESCキーで終了★★☆
■単語の置換■★☆☆
cwカーソルの位置から単語の終わりまで置換
(カーソル位置の単語が削除され入力モード)
★☆☆

通常モード:その他

キー動作内容推奨度
■やり直し■
u1つ前の操作を取り消し(Undo)★★★
■行の連結■
J1つ下の行が現在行に連結される(半角スペース)★★☆
■保存■
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記録モードを終了し通常モードに戻る★★★

最後に

最後まで記事をお読みいただきありがとうございます。文中の間違い、ご要望等ありましたらコメント欄にお願いします。

アプリケーション,vi

Posted by もー