---
title: "Vimとは？読み方・viとの違いと使い方｜基本コマンド・終了方法・.vimrc設定"
url: "https://www.issoh.co.jp/tech/details/4840/"
published: 2025-01-15
updated: 2026-10-29
categories: ["開発"]
publisher: "株式会社一創"
---

# Vimとは？読み方・viとの違いと使い方｜基本コマンド・終了方法・.vimrc設定

Vim（ヴィム）は、ターミナルの中で動くキーボード操作中心のテキストエディタです。名前は「Vi IMproved」の略で、Unixの標準エディタviの操作を引き継いで機能を足したもの（コードはviとは別）です。入力と編集でモードを切り替えて使うため、最初は「文字が打てない」「終了できない」でつまずきますが、覚える操作は十数個で足ります。この記事では、viとの違い、4つのモード、保存・終了・検索置換の基本コマンド、練習の方法、OS別のインストール、.vimrcの最初の書き方、VS CodeやEmacsとの使い分けまでを順に説明します。検索結果に並ぶ化粧品ブランド「vim BEAUTY」とは関係ありません。

## まとめ：Vimの要点

- Vimはviの操作を引き継いだ上位版のエディタで、現行は**Vim 9.2**（2026年2月14日公開）。ただしUbuntuやmacOSに最初から入っているのは9.1系です。
- 最初に覚えるのは3つだけです。`i`で入力を始め、`Esc`でノーマルモードに戻り、`:wq`で保存して終了します。抜けられないときは`Esc`のあと`:q!`（保存せず終了）。
- 練習は`vimtutor ja`で始める日本語の付属チュートリアル（第1章で約30分）が最短です。
- .vimrcを作ると、それまで自動で効いていた構文の色分けや検索中の強調が外れます（macOS同梱版は最初から外れています）。最初の.vimrcには`defaults.vim`を読み込む2行を入れてください。
- SSH先のサーバーで設定ファイルを直す機会が多い人には向き、ローカルのGUIで大きなプロジェクトを開発する人はVS Codeのままで構いません。

## Vimとは：Vi IMprovedの意味とviとの違い

Vimは1991年11月2日にBram Moolenaar氏がバージョン1.14を公開したエディタです。当初はAmiga向けの「Vi IMitation」でしたが、[作者のMoolenaar氏は、Unixへ移植したバージョン1.22（1992年）の時点でviより機能が多くなったため「Vi IMproved」に改めたと述べています](https://web.archive.org/web/20110807042854/http://www.free-soft.org/FSM/english/issue01/vim.html)。読み方は「ヴィム」です。

### 開発の歴史と現在の版

Moolenaar氏は2023年8月3日に亡くなりました。Vimのヘルプには、9.1が同氏に捧げられたことが記されています（[version9.txt](https://github.com/vim/vim/blob/master/runtime/doc/version9.txt)）。その後はコミュニティが開発を引き継ぎ、現在はChristian Brabandt氏が[GitHubのvim/vim](https://github.com/vim/vim/commits/master)へのパッチ取り込みを担っています。

| 版    | 公開日        | 主な変更                         |
| ---- | ---------- | ---------------------------- |
| 1.14 | 1991年11月2日 | 最初の公開版（Amiga・配布は1992年1月）     |
| 1.22 | 1992年      | Unixへ移植、「Vi IMproved」に改称     |
| 8.0  | 2016年9月12日 | 非同期ジョブ、パッケージ機能               |
| 9.0  | 2022年6月28日 | Vim9 scriptを導入               |
| 9.1  | 2024年1月2日  | Moolenaar氏に捧げられた版            |
| 9.2  | 2026年2月14日 | Enum・Tuple、差分表示の改善、Wayland対応 |

9.2では、[vim.orgの公開告知](https://www.vim.org/news/news.php)によると、Vim9 scriptのEnum・ジェネリック関数・Tuple、差分表示のlinematch、あいまい補完、’history’や’backspace’の既定値の見直しが入りました。パッチは毎日のように増えるので、版の細かな見分け方と更新手順は[Vim 9.2の新機能と最新バージョン確認・更新手順｜Enum・Tuple・Wayland対応とパッチ判定](/tech/details/11043/)にまとめています。

### viとVimの違い

viは、[Bill Joy氏が1976〜77年にexエディタへ全画面表示を加えたもの](https://en.wikipedia.org/wiki/Vi%5F%28text%5Feditor%29)が始まりで、POSIXで仕様が決まっています。Vimのヘルプ[vi\_diff.txt](https://github.com/vim/vim/blob/master/runtime/doc/vi%5Fdiff.txt)は、Vimを「99% Vi compatible」と書き、そのうえで追加した機能を挙げています。

- 何回でも戻せるundo（`u`）とやり直し（`Ctrl+r`）。`set undofile`でファイルを閉じても履歴が残る
- 複数のウィンドウ分割とタブページ
- 構文の色分け、補完、プラグイン、Vim script
- ビジュアルモードでの範囲選択（矩形選択を含む）

実務で混乱しやすいのは、`vi`と打って起動するのが実はVimである場合が多い点です。macOS 26では`/usr/bin/vi`が`vim`へのシンボリックリンクになっています。viの解説で覚えた操作は、そのままVimで使えます。

## Vimのモード：最初に覚える4つ

Vimで文字が打てない原因は、ほとんどがモードです。起動直後はノーマルモードで、ここで押したキーは文字ではなくコマンドとして扱われます。日常の操作は次の4つのモードで足ります。

| モード       | 役割              | 入り方                  |
| --------- | --------------- | -------------------- |
| ノーマル      | 移動・削除・コピー（起動直後） | どこからでも`Esc`          |
| 挿入（インサート） | 文字を入力する         | `i` / `a` / `o`      |
| ビジュアル     | 範囲を選んで操作する      | `v` / `V` / `Ctrl+v` |
| コマンドライン   | 保存・終了・置換        | `:`（検索は`/`）          |

なお、Vimのヘルプ[:help vim-modes](https://github.com/vim/vim/blob/master/runtime/doc/intro.txt)は、基本モードを7つ（上の4つに選択・Ex・端末ジョブを加えたもの）、その変形を7つ（置換モードなど）と定義しています。残りは使う場面が限られるので、困ったら`Esc`でノーマルに戻る、とだけ決めておけば十分です。

## Vimの使い方：起動から保存・終了まで

ここからのコマンドは、特に断りがなければノーマルモードで入力します。

### 起動してファイルを開く

```
vim memo.txt          # ファイルを開く（無ければ新規作成）
vim -R /etc/hosts      # 読み取り専用で開く
vim -d old.conf new.conf   # 2つのファイルの差分を左右に並べる（vimdiffと同じ）
vim --version | head -3     # 版と取り込み済みパッチを確認する
```

`vim -d`は差分の行に色が付き、`]c`で次の差分へ移動できます。`do`と`dp`で差分を片側へ取り込めるので、設定ファイルの新旧をその場で揃えられます。

### 保存と終了（Vimを終了できないとき）

保存と終了はコマンドラインモードで行います。挿入モードのまま`:q`と打つと、その文字が本文に入るだけです。先に`Esc`を押してから入力します。

| コマンド                | 動作                |
| ------------------- | ----------------- |
| `:w`                | 上書き保存             |
| `:q`                | 終了（未保存の変更があると止まる） |
| `:wq` / `:x` / `ZZ` | 保存して終了            |
| `:q!` / `ZQ`        | 変更を捨てて終了          |
| `:qa!`              | 分割した全ウィンドウを捨てて終了  |

`:q`で「E37: No write since last change」と出たら、保存するなら`:wq`、捨てるなら`:q!`です。画面の最下行に入力中のコマンドが出ていないときは、まだ`Esc`が効いていません。もう一度`Esc`を押します。

### カーソル移動と編集：操作と移動の組み合わせ

移動は`h`（左）`j`（下）`k`（上）`l`（右）、単語単位は`w`と`b`、行頭は`0`、行末は`$`、ファイルの先頭と末尾は`gg`と`G`です。

Vimの速さは、削除`d`・コピー`y`・書き換え`c`という「操作」と、上の「移動」を組み合わせられる点から来ます。`dw`は単語の削除、`d$`は行末までの削除、`ciw`はカーソル下の単語を消して入力を始めます。行全体は`dd`（削除）と`yy`（コピー）、貼り付けは`p`です。前に数字を付けると回数になり、`3dd`は3行削除、`5j`は5行下へ移動します。直前の変更を`.`で繰り返せるので、同じ修正を何か所かに当てるときは「1回編集して、移動して`.`」の繰り返しで済みます。間違えたら`u`で戻せます。

### 検索（/・n）と置換（:%s）の書き方

検索は`/語`のあと`Enter`で、`n`が次、`N`が前の一致です。置換はコマンドラインモードで書きます。

```
:s/old/new/g
:%s/old/new/g
:%s/old/new/gc
:10,20s/old/new/g
```

上から順に、現在の行のoldをすべてnewに、ファイル全体で、1件ずつ確認しながら、10行目から20行目だけ、の置換です。末尾の`g`は1行の中の一致をすべて置き換える指定で、付けないと各行の最初の1件だけが変わります。パターンには正規表現が使えます。置換結果が気に入らなければ`u`1回で全件が元に戻ります。

## Vimの練習方法：vimtutor jaと:Tutor

Vimには練習用のチュートリアルが付いています。ターミナルで次のように起動すると、日本語版がファイルのコピーで開くので、本文を壊しながら試せます。

```
vimtutor ja          # 第1章（移動・削除・保存などの基本）
vimtutor -c 2 ja     # 第2章（レジスタやマークなど一歩先の操作）
```

日本語版の冒頭には、完了まで「およそ30分」と書かれています（[tutor1.ja](https://github.com/vim/vim/blob/master/runtime/tutor/tutor1.ja)）。第2章は2024年11月に英語版が、2026年1月（パッチ9.1.2095前後）に日本語版が追加されました。このためUbuntu 26.04（9.1.2141）や9.2では日本語で開きますが、macOS同梱の9.1.1752では英語版が開きます。第2章そのものが無いUbuntu 24.04（9.1.0016）では、第1章だけで練習します。

英語版の第2章と同じ2024年11月のパッチ9.1.0836では、Vimの中から起動する対話型のチュートリアル`:Tutor`も入り、9.2に含まれています。Neovimから移植されたもので、リンクをたどりながら進められます。日本語版は無く、英語などで進みます（[:help vim-tutor-mode](https://github.com/vim/vim/blob/master/runtime/doc/pi%5Ftutor.txt)）。

## Vimのインストールと版の確認（Windows・macOS・Linux）

LinuxとmacOSにはvi/Vimが最初から入っていることが多いですが、UbuntuやmacOS、Debian 13が配るVimは9.1系、RHEL 9系は8.2のままです。Fedora 43・44やArch Linux（9.2.1178）は9.2系を配っています。9.1系以前の環境で9.2の機能を使いたい場合だけ入れ直します。

| 環境                     | 入れ方                                 | 入る版（2026年10月29日時点） |
| ---------------------- | ----------------------------------- | ------------------ |
| Ubuntu 26.04 LTS       | `sudo apt install vim`              | 9.1.2141           |
| Ubuntu 24.04 LTS       | `sudo apt install vim`              | 9.1.0016           |
| Fedora 43・44           | `sudo dnf install vim-enhanced`     | 9.2.1202           |
| RHEL 10系（AlmaLinux 10） | `sudo dnf install vim-enhanced`     | 9.1.083            |
| RHEL 9系（AlmaLinux 9）   | `sudo dnf install vim-enhanced`     | 8.2.2637           |
| macOS（同梱）              | 不要                                  | 9.1（macOS 26.6）    |
| macOS（Homebrew）        | `brew install vim`                  | 9.2.1250           |
| Windows                | `winget install vim.vim` またはインストーラー | 9.2系               |

Ubuntuの版は[Launchpadの公開パッケージ](https://launchpad.net/ubuntu/+source/vim)、Homebrewは[formulae.brew.sh](https://formulae.brew.sh/formula/vim)の値です。Ubuntuのパッケージは版番号が9.1のままでも、セキュリティ修正は個別に取り込まれます。Windowsのインストーラーは[vim.orgのダウンロードページ](https://www.vim.org/download.php)から辿れる[vim-win32-installer](https://github.com/vim/vim-win32-installer/releases)で、2026年10月28日に9.2.1252が出ています。RHEL系の`vi`は機能を絞ったvim-minimalなので、構文の色分けなどを使うならvim-enhancedを入れて`vim`で起動します。

入った版は`vim --version`の1行目と「Included patches」の行で確かめます。Ubuntuでの導入や日本語化で迷ったら[Ubuntuとは｜インストール手順・推奨スペック・日本語化とアプリセンターの文字化け対策](/tech/details/7492/)も参考になります。

## .vimrcの書き方：defaults.vimを失わない最初の設定

Vimの設定はホームディレクトリの`.vimrc`（Windowsでは`_vimrc`）に1行ずつ書きます。ここで初心者が気づきにくい落とし穴があります。

### .vimrcを作ると既定の設定が外れる

Vimは、ユーザーの.vimrcが見つからないときだけ`$VIMRUNTIME/defaults.vim`を読み込み、構文の色分けやファイル形式の判定などを有効にします（[:help defaults.vim](https://github.com/vim/vim/blob/master/runtime/doc/starting.txt)）。つまり、行番号を出したくて`set number`だけの.vimrcを作ると、それまで効いていた設定がまとめて外れます。Vim 9.1で、OS側の設定ファイルを外した状態で確かめた結果が次の表です。

| .vimrcの中身         | 構文の色分け | 検索中の強調 | scrolloff |
| ----------------- | ------ | ------ | --------- |
| .vimrcなし          | 有効     | 有効     | 5         |
| `set number`だけ    | 無効     | 無効     | 0         |
| 下の2行＋`set number` | 有効     | 有効     | 5         |

macOS同梱のVimはシステム側の`/usr/share/vim/vimrc`で`skip_defaults_vim=1`を設定しているため、.vimrcの有無にかかわらずdefaults.vimが読まれません。macOSで「ほかの環境より色が付かない」と感じるのはこのためです。

### 最初の.vimrcの例

先頭の2行がdefaults.vimを読み直す指定で、ヘルプが推奨している書き方です。そのあとに好みの設定を足していきます。

```
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim

set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp932,euc-jp,latin1
set number          " 行番号
set expandtab       " タブを空白に置き換える
set tabstop=4 shiftwidth=4
set hlsearch        " 検索結果を強調したままにする
set ignorecase smartcase
```

`fileencodings`の行は日本語環境向けです。既定値は「ucs-bom,utf-8,default,latin1」でShift\_JIS（cp932）を含みません。このためWindowsで作ったShift\_JISのファイルをmacOSやLinuxで開くとlatin1と判定され、文字化けします（日本語版WindowsのVimは、既定値の「default」がシステムの文字コードcp932を指すので化けません）。上のようにcp932を加えると、同じファイルがcp932として正しく表示されます（Vim 9.1で確認）。

### プラグインの入れ方：標準のパッケージ機能

Vim 8.0からは、プラグイン管理ツールがなくても`~/.vim/pack/任意の名前/start/`の下（Windowsでは`~/vimfiles/pack/…`）にプラグインを置くだけで起動時に読み込まれます（[:help packages](https://github.com/vim/vim/blob/master/runtime/doc/repeat.txt)）。必要なときだけ読み込むなら`opt/`に置いて`:packadd 名前`を使います。

```
git clone https://github.com/preservim/nerdtree.git ~/.vim/pack/plugins/start/nerdtree
```

更新や一括管理をしたくなったらvim-plugなどの管理ツールに移ります。入れ過ぎると起動が遅くなり、キー割り当ても衝突しやすくなるので、困っている作業を解決するものだけを足すのが長続きするやり方です。

## VS Code・Emacs・nano・Neovimとの違いと使い分け

| エディタ    | 操作の方式      | 覚える量 | 向く用途               |
| ------- | ---------- | ---- | ------------------ |
| Vim     | モード切り替え    | 多い   | SSH先・ターミナル中心の編集    |
| Neovim  | Vimと同じ     | 多い   | Luaで設定、LSPを内蔵で使う   |
| Emacs   | 修飾キーの組み合わせ | 多い   | Emacs Lispで環境を作り込む |
| VS Code | GUI・マウス併用  | 少ない  | 大きなプロジェクトの開発       |
| nano    | 画面下に操作を表示  | 少ない  | 設定ファイルの短い修正        |

NeovimはVimから派生したエディタで、操作はほぼ共通です。設定をLuaで書きたい場合は[Neovim（nvim）の使い方｜基本操作・init.lua設定・プラグイン・LSP【0.12.6対応】](/tech/details/5870/)を、Emacsについては[Emacs（イーマックス）とは？使い方・インストール・init.el設定を解説【31.1対応】](/tech/details/7735/)を参照してください。

### Vimを選ぶ場面・選ばなくてよい場面

Vimを覚える価値がはっきりあるのは、SSHで入ったサーバーで設定ファイルを直す作業が週に何度もある人です。GUIの無いLinuxサーバーにも、多くの場合`vi`が最初から入っているからです（ubuntuやdebian-slimのコンテナイメージには入っていないので、必要なら`apt install vim`で入れます）。サーバーの構築や運用を外部に任せている場合も、障害時に設定ファイルを読む場面では役に立ちます（弊社の[AWS・Google Cloud・Azureのインフラ構築支援](/service/system/aws/)でも、サーバー上の作業はターミナルが前提です）。

反対に、普段の開発がローカルのGUIで完結していて、サーバーを触るのが月に1回もないなら、Vimに乗り換える必要はありません。よくある失敗は、VS CodeからVimへ一気に移り、プラグインの設定に何日も使って本来の作業が止まることです。操作感だけ試したいなら、VS CodeにVimのキー操作を再現する拡張機能を入れる方法があります。nanoは操作が画面下に出るので、一度きりの修正にはこちらが早く済みます。

ターミナルの作業が中心になるなら、画面分割やセッションの維持を担う[tmuxの使い方｜Windows(psmux・WSL)の導入とコマンド・画面分割【3.8対応】](/tech/details/9564/)と組み合わせると、SSHが切れても編集中の状態が残ります。

## よくある質問

### Vimの読み方と意味は？

「ヴィム」と読みます。「Vi IMproved」の略で、viを改良したエディタという意味です。最初の公開時（1991年）は「Vi IMitation」の略でした。

### Vimを終了できないときはどうすればいい？

`Esc`を押してから`:q!`と入力して`Enter`を押すと、変更を捨てて終了します。保存したいときは`:wq`です。挿入モードのままだと`:q`が本文に入力されるだけなので、先に`Esc`が必要です。

### viとVimはどう違う？

Vimはviとほぼ互換の操作のまま、何回でも戻せるundo、ウィンドウ分割、構文の色分け、プラグインなどを加えたエディタです。多くのLinuxやmacOSでは、`vi`コマンドで起動するのも実際にはVimです。

### nanoとVimはどっちを使うべき？

設定ファイルを一度直すだけならnanoが早く済みます。サーバーでの編集を日常的に行うならVimを覚えるほうが速く、多くのサーバーに最初から入っている`vi`でも同じ操作が使えます。

### VS CodeとVimはどっちがいい？

ローカルでの開発が中心ならVS Codeで十分です。SSH先での編集が多い人はVimを覚え、VS CodeにもVimのキー操作を入れて両方で同じ指の動きを使う、という組み合わせがあります。

## 関連記事

- [Vim 9.2の新機能と最新バージョン確認・更新手順｜Enum・Tuple・Wayland対応とパッチ判定](/tech/details/11043/)
- [Neovim（nvim）の使い方｜基本操作・init.lua設定・プラグイン・LSP【0.12.6対応】](/tech/details/5870/)
- [Emacs（イーマックス）とは？使い方・インストール・init.el設定を解説【31.1対応】](/tech/details/7735/)
- [tmuxの使い方｜Windows(psmux・WSL)の導入とコマンド・画面分割【3.8対応】](/tech/details/9564/)
- [Linuxコマンド一覧｜用途別早見表48選とUbuntu 26.04での変更点](/tech/details/2754/)

---

出典: [Vimとは？読み方・viとの違いと使い方｜基本コマンド・終了方法・.vimrc設定](<https://www.issoh.co.jp/tech/details/4840/>)（株式会社一創）
