プログラマーやシステム管理者の間で高く評価されるテキストエディタ「Vim(ヴィム)」。
しかし、初めて使うと「文字が打てない」「終了の仕方がわからない」と戸惑う人も少なくありません。
この記事では、Vim初心者がまず覚えておきたい基本コマンドを、モード別にわかりやすく一覧でご紹介します。
Vimのモードを理解しよう

Vimが独特な理由
Vimの最大の特徴は「モーダルエディタ」であることです。一般的なエディタとちがい、操作の目的によってモードを切り替えて使用します。
主な3つのモード
ノーマルモード(Normal Mode)
- Vimを起動した時のデフォルト状態
- カーソル移動やコマンド入力に使用
- 文字入力はできない(初心者が戸惑うポイント)
挿入モード(Insert Mode)
- 文字入力が可能な状態
- 一般的なエディタと同じように文字を入力できる
コマンドラインモード(Command-line Mode)
- ファイルの保存、終了、検索置換などのコマンドを実行
- 画面の最下部にコマンドが表示される
モード切り替えの基本
切り替え | コマンド | 説明 |
---|---|---|
ノーマル → 挿入 | i | カーソル位置の前に挿入 |
ノーマル → 挿入 | a | カーソル位置の後ろに挿入 |
ノーマル → 挿入 | o | 現在行の下に新しい行を作成して挿入 |
挿入 → ノーマル | Esc | ノーマルモードに戻る |
ノーマル → コマンドライン | : | コマンドラインモードに入る |
ノーマル → 検索 | / または ? | 検索モードに入る |
実践例
# Vimを起動(ノーマルモード)
vim example.txt
# 文字を入力したい場合
i # 挿入モードに切り替え
Hello, Vim! # 文字を入力
<Esc> # ノーマルモードに戻る
# ファイルを保存
:w # コマンドラインモードで保存
モードの概念を理解することが、Vim上達への第一歩です。現在どのモードにいるかを常に意識しながら操作しましょう。
基本のファイル操作コマンド

ファイルの保存と終了
Vim初心者が最初に覚えるべきは「終了方法」です。これを知らないと、Vimから抜け出せなくなってしまいます。
コマンド | 機能 | 使用場面 |
---|---|---|
:w | 保存 | 作業内容を保存したい時 |
:q | 終了 | 編集していないファイルを閉じる時 |
:wq | 保存して終了 | 編集完了時の基本操作 |
:x | 保存して終了 | :wq と同じ(少し短縮) |
:q! | 保存せずに終了 | 変更を破棄したい時 |
:w filename | 別名保存 | 新しいファイル名で保存 |
実践例
# ファイルを編集後
:w # 保存のみ(編集続行)
:wq # 保存して終了
:q! # 変更を破棄して終了
ファイルを開く・作成
コマンド | 機能 | 説明 |
---|---|---|
:e filename | ファイルを開く | 既存ファイルを開く |
:e! | 再読み込み | 現在のファイルを再読み込み |
:new | 新しいウィンドウ | 水平分割で新規ファイル |
:vnew | 新しいウィンドウ | 垂直分割で新規ファイル |
実践例
:e config.txt # config.txtを開く
:e! # 現在のファイルをリロード
複数ファイルの操作
コマンド | 機能 | 説明 |
---|---|---|
:split filename | 水平分割 | ファイルを水平に分割して開く |
:vsplit filename | 垂直分割 | ファイルを垂直に分割して開く |
Ctrl + w + w | ウィンドウ切り替え | 分割されたウィンドウ間を移動 |
:tabnew filename | 新しいタブ | タブで新しいファイルを開く |
gt | 次のタブ | タブ間の移動 |
gT | 前のタブ | タブ間の移動(逆方向) |
Vimの基本操作は、まず「保存・終了」を覚えるところから始まります。これらのコマンドを確実にマスターしてから、次のステップに進みましょう。
カーソル移動コマンド
基本的な移動(hjklキー)
Vimでは矢印キーの代わりに、ホームポジションに近い「hjkl」キーで移動します。これにより、手をホームポジションから離すことなく高速に移動できます。
キー | 方向 | 覚え方のコツ |
---|---|---|
h | 左 | hは一番左にある |
j | 下 | jは下に突き出ている |
k | 上 | kは上に突き出ている |
l | 右 | lは一番右にある |
実践例
# 基本移動
h h h # 左に3回移動
j j # 下に2回移動
k # 上に1回移動
l l l l # 右に4回移動
高速移動コマンド
コマンド | 機能 | 使用場面 |
---|---|---|
gg | 先頭行へ移動 | ファイルの最初に移動 |
G | 最終行へ移動 | ファイルの最後に移動 |
0 | 行の先頭 | 現在行の最初の文字 |
$ | 行の末尾 | 現在行の最後の文字 |
^ | 行の最初の非空白文字 | インデントを無視した行頭 |
w | 次の単語の先頭 | 単語単位での移動 |
b | 前の単語の先頭 | 単語単位での逆方向移動 |
e | 単語の末尾 | 現在の単語の最後 |
実践例
gg # ファイルの先頭に移動
G # ファイルの最後に移動
0 # 行の先頭に移動
$ # 行の末尾に移動
5G # 5行目に移動
ページ単位の移動
コマンド | 機能 | 説明 |
---|---|---|
Ctrl + f | 次のページ | 1画面分下にスクロール |
Ctrl + b | 前のページ | 1画面分上にスクロール |
Ctrl + d | 半ページ下 | 半画面分下にスクロール |
Ctrl + u | 半ページ上 | 半画面分上にスクロール |
H | 画面の上端 | 現在表示されている最上行 |
M | 画面の中央 | 現在表示されている中央行 |
L | 画面の下端 | 現在表示されている最下行 |
行番号指定の移動
コマンド | 機能 | 例 |
---|---|---|
:数字 | 指定行に移動 | :25 で25行目に移動 |
数字G | 指定行に移動 | 25G で25行目に移動 |
Ctrl + g | 現在位置を表示 | 行番号と全体の進捗を確認 |
移動コマンドをマスターすると、テキスト内を自由に行き来できるようになります。最初は基本のhjklから慣れていき、徐々に高速移動コマンドを覚えていきましょう。
編集に使うコマンド

テキストの挿入
コマンド | 機能 | カーソルの位置 |
---|---|---|
i | 挿入モード | カーソル位置の前 |
a | 挿入モード | カーソル位置の後ろ |
I | 挿入モード | 行の先頭 |
A | 挿入モード | 行の末尾 |
o | 新しい行を挿入 | 現在行の下 |
O | 新しい行を挿入 | 現在行の上 |
実践例
i # カーソル位置の前から入力開始
Hello World # テキストを入力
<Esc> # ノーマルモードに戻る
A # 行末に移動して入力開始
! # 行末に「!」を追加
<Esc> # ノーマルモードに戻る
テキストの削除
コマンド | 機能 | 説明 |
---|---|---|
x | 1文字削除 | カーソル位置の文字 |
X | 1文字削除 | カーソル位置の前の文字 |
dd | 1行削除 | カーソルがある行全体 |
dw | 単語削除 | カーソル位置から単語の末尾まで |
D | 行末まで削除 | カーソル位置から行末まで |
d0 | 行頭まで削除 | 行頭からカーソル位置まで |
実践例
x # カーソル位置の1文字を削除
dd # 現在行を削除
3dd # 現在行から3行削除
dw # 現在の単語を削除
テキストのコピーと貼り付け
Vimでは「削除=カット」「yank=コピー」と覚えるとわかりやすいです。
コマンド | 機能 | 説明 |
---|---|---|
yy | 1行コピー | 現在行をヤンク |
yw | 単語コピー | 現在の単語をヤンク |
y$ | 行末までコピー | カーソル位置から行末まで |
p | 貼り付け | カーソル位置の後ろに貼り付け |
P | 貼り付け | カーソル位置の前に貼り付け |
実践例
yy # 現在行をコピー
p # カーソル位置の下に貼り付け
3yy # 現在行から3行をコピー
P # カーソル位置の上に貼り付け
テキストの変更
コマンド | 機能 | 説明 |
---|---|---|
r + 文字 | 1文字置換 | カーソル位置の文字を置換 |
R | 置換モード | 連続置換モードに入る |
cw | 単語変更 | 単語を削除して挿入モードに |
cc | 行変更 | 行を削除して挿入モードに |
C | 行末まで変更 | 行末まで削除して挿入モードに |
実践例
ra # カーソル位置の文字を「a」に置換
cw # 単語を削除して挿入モードに入る
new_word<Esc> # 新しい単語を入力してノーマルモードに戻る
取り消しとやり直し
コマンド | 機能 | 説明 |
---|---|---|
u | 取り消し | 直前の操作を取り消し |
Ctrl + r | やり直し | 取り消した操作をやり直し |
U | 行の復元 | 現在行のすべての変更を取り消し |
実践例
dd # 行を削除
u # 削除を取り消し(行が復活)
Ctrl + r # 再度削除(やり直し)
編集コマンドは実際の作業で最も頻繁に使用します。基本的な挿入、削除、コピー、貼り付けから覚えて、徐々に効率的な変更コマンドを身につけていきましょう。
検索と置換のコマンド
基本的な検索
コマンド | 機能 | 説明 |
---|---|---|
/文字列 | 下方向に検索 | カーソル位置から下に向かって検索 |
?文字列 | 上方向に検索 | カーソル位置から上に向かって検索 |
n | 次を検索 | 同じ方向で次の検索結果 |
N | 前を検索 | 逆方向で次の検索結果 |
実践例
/function # "function"を下方向に検索
n # 次の"function"に移動
N # 前の"function"に移動
?class # "class"を上方向に検索
高度な検索オプション
コマンド | 機能 | 説明 |
---|---|---|
/文字列\c | 大文字小文字を無視 | 大文字小文字を区別しない検索 |
* | 現在の単語を検索 | カーソル位置の単語を下方向に検索 |
# | 現在の単語を逆検索 | カーソル位置の単語を上方向に検索 |
:nohl | ハイライト解除 | 検索結果のハイライトを消す |
置換コマンド
コマンド | 機能 | 説明 |
---|---|---|
:s/旧/新/ | 現在行で最初の1つを置換 | 現在行のみ |
:s/旧/新/g | 現在行ですべて置換 | 現在行のすべての該当文字列 |
:%s/旧/新/g | ファイル全体を置換 | 全行のすべての該当文字列 |
:%s/旧/新/gc | 確認しながら置換 | 1つずつ確認しながら置換 |
実践例
:%s/old_function/new_function/g # ファイル全体で関数名を置換
:%s/TODO/DONE/gc # 確認しながらTODOをDONEに置換
:1,10s/var/let/g # 1-10行目でvarをletに置換
正規表現を使った高度な検索・置換
パターン | 意味 | 例 |
---|---|---|
. | 任意の1文字 | /a.b → “axb”, “ayb”など |
* | 直前の文字が0回以上 | /ab*c → “ac”, “abc”, “abbc”など |
^ | 行の先頭 | /^function → 行頭の”function” |
$ | 行の末尾 | /;$ → 行末のセミコロン |
\< | 単語の境界(開始) | /\<cat → “category”ではなく”cat” |
\> | 単語の境界(終了) | /cat\> → “concatenate”ではなく”cat” |
実践例
/^#.* # 行頭の#で始まるコメント行を検索
:%s/\s\+$//g # 行末の空白を削除
:%s/\<old\>/new/g # "old"という単語のみを"new"に置換
検索履歴の活用
コマンド | 機能 | 説明 |
---|---|---|
/ + ↑ | 検索履歴 | 過去の検索パターンを呼び出し |
: + ↑ | コマンド履歴 | 過去のコマンドを呼び出し |
検索と置換はVimの強力な機能のひとつです。大量テキストを扱う際に大活躍します。正規表現と組み合わせることで、複雑なパターンマッチングも可能になります。
ビジュアルモードの活用

ビジュアルモードの種類
Vimには文字やブロックを選択するための「ビジュアルモード」があります。
コマンド | モード | 説明 |
---|---|---|
v | ビジュアルモード | 文字単位での選択 |
V | ビジュアルラインモード | 行単位での選択 |
Ctrl + v | ビジュアルブロックモード | 矩形領域の選択 |
ビジュアルモードでの操作
コマンド | 機能 | 説明 |
---|---|---|
y | 選択範囲をコピー | ヤンク |
d | 選択範囲を削除 | カット |
c | 選択範囲を変更 | 削除して挿入モードに |
> | インデント追加 | 選択行を右にシフト |
< | インデント削除 | 選択行を左にシフト |
u | 小文字に変換 | 選択範囲を小文字に |
U | 大文字に変換 | 選択範囲を大文字に |
実践例
v # ビジュアルモード開始
jjj # 3行分選択
y # 選択範囲をコピー
p # 貼り付け
V # ビジュアルラインモード
jj # 3行選択
> # インデントを追加
便利な設定とカスタマイズ
.vimrcファイルでの基本設定
ホームディレクトリに.vimrc
ファイルを作成すると、Vimの動作をカスタマイズできます。
" 基本設定
set number " 行番号を表示
set ruler " ルーラーを表示
set showcmd " コマンドを表示
set title " タイトルを表示
" インデント設定
set autoindent " 自動インデント
set smartindent " スマートインデント
set tabstop=4 " タブの幅
set shiftwidth=4 " シフト幅
set expandtab " タブをスペースに変換
" 検索設定
set hlsearch " 検索結果をハイライト
set incsearch # インクリメンタル検索
set ignorecase " 大文字小文字を無視
set smartcase " 大文字が含まれる場合は区別
" 表示設定
set syntax=on " シンタックスハイライト
set background=dark " 背景色を暗く
colorscheme desert " カラーテーマ
" キーマップ設定
nnoremap <C-s> :w<CR> " Ctrl+Sで保存
inoremap jj <Esc> " jjでノーマルモードに戻る
よく使うキーマップ
" .vimrcに追加できる便利なキーマップ
nnoremap <Space>w :w<CR> " Spaceキー+wで保存
nnoremap <Space>q :q<CR> " Spaceキー+qで終了
nnoremap <C-h> <C-w>h " Ctrl+hで左のウィンドウに移動
nnoremap <C-j> <C-w>j " Ctrl+jで下のウィンドウに移動
nnoremap <C-k> <C-w>k " Ctrl+kで上のウィンドウに移動
nnoremap <C-l> <C-w>l " Ctrl+lで右のウィンドウに移動
実践的な使用例
プログラミングでの活用
# コメントアウト
V # ビジュアルラインモード
jjj # 複数行選択
:s/^/# / # 行頭に「# 」を追加
# インデント調整
V # ビジュアルラインモード
} # 段落の終わりまで選択
> # インデント追加
ログファイルの解析
# 特定のエラーを検索
/ERROR # エラーを検索
n # 次のエラーに移動
# 行番号指定でジャンプ
:1000 # 1000行目に移動
G # ファイル末尾に移動
設定ファイルの編集
# 設定の複製
yy # 現在行をコピー
p # 貼り付け
cw # 単語を変更
new_setting # 新しい設定値を入力
まとめ:Vimをマスターして効率的なテキスト編集を実現しよう
Vimの操作に慣れるためには、まずは基本コマンドを繰り返し使って体に覚えさせることが大切です。
モードの切り替え、保存・終了、移動、編集、検索といった基本操作をマスターすれば、Vimは強力な武器になります。
この記事で学んだポイント
- モーダルエディタとしてのVimの特徴理解
- ファイル操作の基本(保存・終了・開く)
- 効率的なカーソル移動テクニック
- テキスト編集の基本操作(挿入・削除・コピー・貼り付け)
- 検索と置換の強力な機能
- ビジュアルモードでの範囲選択操作
コメント