Q1viで文字を入力できるようにするには、ノーマルモードで何を押しますか?
テキストエディタ vi の基本
viの起動、ノーマルモードと挿入モードの切り替え、Escでのモード復帰、:wqでの保存と :q! での破棄を、ブラウザ端末で実際に操作しながら学べます。
vi の起動とモード
viは Linux サーバーにほぼ必ず入っているテキストエディタです。
本講座では、どのサーバーでも使えるviの最小限の操作を学びます。
viには 2 つのモードがあります。
起動直後はノーマルモードで、ここではキーが移動や命令として働き、文字は入力できません。
iを押すと挿入モードに切り替わり、文字を打ち込めます。
Escを押すとノーマルモードへ戻ります。
iで挿入モード、Escでノーマルモードへ戻ります。vi memo.txt # memo.txt を開く(ノーマルモードで起動)
# i を押す → 挿入モード(文字入力できる)
# 文字を入力
# Esc を押す → ノーマルモードへ戻る
迷ったら Esc → :q! で抜けられます
操作を間違えて画面が動かなくなったら、Escを数回押してから:q!で抜け、最初からやり直してください。
これでいつでも安全に元の状態へ戻れます。
保存と破棄 — :wq と :q!
ノーマルモードで:を打つとコマンドラインが開き、終了に関する命令を入力できます。
:wqは書き込み(write)して終了(quit)、つまり保存して閉じます。
:wは保存するだけで終了せず、:qは変更が無いときに終了します。
:q!は変更を破棄して強制終了し、編集前の状態に戻します。
| キー / コマンド | モード | 動作 |
|---|---|---|
vi file | — | ファイルを開く(ノーマルで起動) |
i | ノーマル | 挿入モードに入る |
Esc | 挿入 | ノーマルへ戻る |
:w | ノーマル | 保存(終了しない) |
:q | ノーマル | 終了(変更が無いとき) |
:wq | ノーマル | 保存して終了 |
:q! | ノーマル | 変更を破棄して終了 |
:wqは変更を保存して終了、:q!は変更を捨てて終了します。:q! は変更が残らない
:q!はその編集セッションでの変更をすべて捨てて終了します。
書き間違えてやり直したいときには便利ですが、保存したい内容があるときは:wqを使ってください。
vi draft.txt # 開く
# i で挿入 → 文字入力 → Esc
# :q! と入力 → 変更を破棄して終了(draft.txt は空のまま)
cat draft.txt # 何も書かれていない
もっと vi を使う — a / o と :w
挿入モードに入る方法はiだけではありません。
aはカーソルの右側から、oはカーソルの下に新しい行を作って入力を始めます。
大文字のAは行末から、Oはカーソルの上に新しい行を作って入力します。
どれもEscでノーマルモードへ戻る点は同じです。
保存の命令も使い分けられます。
:wは終了せずに保存だけを行い、そのまま編集を続けられます。
長い編集では:wでこまめに保存し、最後に:wqで保存して閉じると安全です。
| キー | 入力の始まる位置 |
|---|---|
i | カーソルの左(手前)から |
a | カーソルの右(後ろ)から |
o | 下に新しい行を作って |
A | 行末から |
O | 上に新しい行を作って |
iは左、aは右、oは下の新しい行から入力を始めます。いずれもEscで戻ります。行を削除・コピーする — dd / yy / p
ノーマルモードでは、文字を入力せずに行単位の編集ができます。
ddはカーソルのある行を 1 行まるごと削除(切り取り)します。
xはカーソル上の 1 文字を削除し、uは直前の操作を取り消します(アンドゥ)。
yyはカーソルのある行をコピー(ヤンク)し、pはコピーまたはddで切り取った内容をカーソルの下の行に貼り付けます。
ddで切り取った行もpで貼り付けられるので、行の移動にも使えます。
| キー | 動作 |
|---|---|
x | カーソル上の 1 文字を削除 |
dd | 行を 1 行削除(切り取り) |
3dd / d3d | 数を付けて複数行を削除(例: 3 行) |
yy | 行をコピー(ヤンク) |
10yy / y10y | 数を付けて複数行をコピー(例: 10 行) |
p | コピー / 切り取った行を下に貼り付け |
u | 直前の操作を取り消す(アンドゥ) |
ddで切り取り、yyでコピーし、pで下の行に貼り付けます。いずれもノーマルモードで打ちます。行数を前に付けると、複数行をまとめて操作できます。
3dd(またはd3d)は 3 行を削除し、10yy(またはy10y)は 10 行をコピーします。
削除やコピーのあとにpで貼り付ければ、複数行の移動や複製も 1 回の操作でできます。
3ddは 3 行削除、10yyは 10 行コピー。pでまとめて貼り付けられます。カーソル移動と検索 — gg / G と / ?
長いファイルでは、1 行ずつ動くより一気にジャンプすると速く目的地へ着けます。
ggはファイルの先頭行へ、Gは最終行へカーソルを移動します。
ggが効かない環境でも1Gで先頭行へ移動できます。
文字列を探すときは検索を使います。
/wordと打って Enter で、カーソルより下(前方)へwordを検索します。
?wordは上(後方)へ検索し、nは同じ向きの次の一致、Nは逆向きの一致へ移動します。
どれもノーマルモードで打ち、Escは不要です。
| キー | 動作 |
|---|---|
gg / 1G | 先頭行へ移動 |
G | 最終行へ移動 |
/word | 下(前方)へ word を検索 |
?word | 上(後方)へ word を検索 |
n / N | 次の一致 / 前の一致へ |
gg/Gで先頭・末尾へ、/wordは下方向・?wordは上方向に検索し、n/Nで次・前の一致へ動きます。理解度チェック
まずは1問ずつ答えてみましょう。
Q2挿入モードからノーマルモードへ戻るには何を押しますか?
Q3:q!を実行すると何が起こりますか?