第1回 vi 入門|“こわくない” はじめの一歩|UNIX Cafe

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

vi 入門|

vi 入門 | 第1回

目次

まず最初に覚えたい「vi コマンドモード」の基本

ミナちゃん

「vi って、入ったら出られなくなるって聞いて、ちょっと怖いです……」

vi に初めて触れるとき、多くの人がまず不安になるのは自然な反応です。ターミナルにあの画面が出てきただけで、「何か難しいことが始まった」と感じやすいからです。

でも、最初から全てを理解する必要はありません。まずは 開く → 動かす → 書く → 保存して閉じる という流れが見えてくれば大丈夫です。

このページでは、vi が怖く感じる理由をやわらげながら、初心者が最初に覚えるべきコマンドモードの基本だけに絞って、やさしく進めます。

動画で流れを先に見たい方は、UNIX Cafe の YouTube もあわせてどうぞ。記事と同じく、初心者向けのやさしい流れで vi の最初の一歩を確認できます。


📝 この記事で学べること

  • vi を開いたときの状態(コマンドモード)とは何か
  • カーソルを動かす移動キー h j k l の使い方
  • 文字や行を削除するコマンド xdd
  • 入力モードへの切り替え方(i キー)
  • 保存と終了のコマンド(:w :q :wq

vi を開いた直後はコマンドモード

vi は、開いた瞬間から文字を書き始めるエディタではありません。最初にいるのは、移動・削除・保存・終了のためのコマンドモードです。

メモ帳や VSCode に慣れていると、ファイルを開いたらすぐ文字が打てると思いがちです。しかし vi では、まず「操作する場所」からスタートします。この違いが、初めて触れたときの戸惑いの正体です。

この状態で文字が打てなくても異常ではありません。まずは「いまは操作の時間なんだ」と考えるだけで、かなり落ち着いて触れるようになります。


💡 コマンドモードとは

vi には大きく2つの状態があります。「コマンドモード」は操作のための状態、「入力モード」は文字を書くための状態です。起動直後は必ずコマンドモードから始まります。


コマンドモードでできること

コマンドモードでは、文字を打つ以外のほぼすべての操作ができます。主なものをまとめると、次のとおりです。

  • カーソルを移動する(h j k l
  • 文字を削除する(x
  • 行をまるごと削除する(dd
  • 入力モードへ切り替える(i
  • 保存する(:w
  • 終了する(:q

最初から全部を覚える必要はありません。まずは「動かす」「消す」「終わる」の3つが見えてくればOKです。

移動キー h j k l の使い方

コマンドモードでは、カーソルの移動もキーボードで行います。矢印キーでも動くことはありますが、vi の流儀では次の4つを使います。

h : 左に移動
j : 下に移動
k : 上に移動
l : 右に移動

最初は「なぜ矢印キーを使わないのか」と思うかもしれません。これは vi が生まれた時代のキーボードに矢印キーがなかった名残です。慣れると、ホームポジションから手を離さずに操作できるため、むしろ速く動けるようになります。

まずは h で左、l で右、j で下、k で上、と声に出しながら動かしてみましょう。体で覚えると自然に身につきます。


⚠ 注意:ファイルが空のときは移動できません

新しいファイルを開いた直後は内容が何もないため、カーソルは動きません。まず i で数行書いてから Esc で戻り、移動を試してみましょう。


削除コマンド x と dd

コマンドモードには、文字や行を削除するコマンドが2種類あります。

x  : カーソル位置の1文字を削除する
dd : カーソルがいる行を1行まるごと削除する

x は Delete キーに近いイメージです。カーソルを消したい文字に合わせて x を押すだけで、その文字が消えます。dd は行単位の削除で、間違えて書いた行をまるごと消したいときに使います。

なお、dd で削除した行は p を押すと貼り付け直せます。「やっぱり消さなければよかった」というときでも、あわてなくて大丈夫です。


⚠ よくある失敗:入力モードのまま x や dd を押してしまう

入力モード中に xdd を押すと、そのまま文字として入力されてしまいます。削除コマンドを使う前は、必ず Esc を押してコマンドモードに戻りましょう。


入力モードへの切り替え:i キー

コマンドモードのままでは文字を書けません。文字を書きたいときは、i を押して入力モードに切り替えます。

i を押すと、画面の下部に -- INSERT -- と表示されます。これが「いま入力モードにいる」というサインです。この状態になってはじめて、文字を自由に書けるようになります。

書き終えたら Esc を押してコマンドモードに戻ります。この「入力 → Esc → コマンド操作」という往復が、vi の基本リズムです。


💡 i 以外にも入力モードへの入り方があります

i はカーソルの直前から入力を始めます。行末に追記したいときは A(大文字)、新しい行を下に追加したいときは o(小文字)が便利です。まずは i だけ覚えて、慣れてきたら少しずつ増やしましょう。


保存と終了::w :q :wq

保存や終了は、コマンドモードで :(コロン)から始まるコマンドを使います。: を押すと画面の下部にカーソルが移動するので、そこに続けて文字を打ちます。

:w  : ファイルを保存する
:q  : vi を終了する
:wq : 保存して終了する
:q! : 変更を破棄して強制終了する

初心者のうちは、まず :wq を中心に覚えると安心です。保存だけしたいときは :w、閉じたいだけのときは :q と整理すると、出口まわりが見えやすくなります。


⚠ 「出られない!」になったときは :q! を使う

何かを書いてしまって「保存したくないけど閉じたい」というときは :q! を使います。変更をすべて破棄して強制終了できます。「とにかく出たい」という緊急の出口として覚えておきましょう。


まずはこの流れだけ試してみよう

ここまでのコマンドを使って、次の流れを一度だけ試してみましょう。難しく考えず、順番どおりに操作するだけで大丈夫です。

  1. ターミナルで vi hello.txt と入力して Enter を押す
  2. i を押して入力モードに切り替える(画面下部に -- INSERT -- と表示される)
  3. 好きな文字を1行だけ書く
  4. Esc を押してコマンドモードに戻る
  5. h j k l でカーソルを動かしてみる
  6. :wq と入力して Enter を押し、保存して終了する
vi hello.txt        # ファイルを開く
i                   # 入力モードへ切り替える
Hello, vi!          # 何か書く
Esc                 # コマンドモードへ戻る
h j k l             # カーソルを動かしてみる
:wq                 # 保存して終了する

この流れを一度体験するだけで、コマンドモードは「怖いもの」ではなく「操作の土台」に見えてきます。うまくいかなくても :q! で強制終了できるので、気軽に試してみましょう。

まとめ|最初に見るべきなのは「文字」ではなく「操作」


✔ この記事のまとめ

  • vi を開いた直後は「コマンドモード」にいる。文字が打てなくても正常
  • カーソル移動は h(左)j(下)k(上)l(右)で行う
  • 削除は x(1文字)と dd(1行)の2種類を使い分ける
  • 文字を書くときは i で入力モードに切り替え、終わったら Esc で戻る
  • 保存は :w、終了は :q、保存して終了は :wq、強制終了は :q!

コマンドモードは、vi を動かすための基本の場所です。全部を一度に覚える必要はありません。まずは「vi は入力する前に操作するエディタなんだ」と見えてくれば、それが大きな一歩です。

試してみて「思っていたより、ちゃんと触れた」という感覚がつかめれば、次のステップへ進む準備は十分できています。

ミナちゃん

「思っていたより、ちゃんと触れました」

次回予告

次は、「vi 移動コマンド」の基本を見ていきます。単純な1文字移動だけでなく、単語単位・行頭・行末への移動など、実際の編集作業でよく使う動きを取り上げます。ここまでの操作を土台にすると、流れがつかみやすくなります。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

さらに学びたいあなたへ

用途ごとに選ぶ Linux のおすすめ本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次