これで迷わない!Vimの基本コマンド一覧と使い方ガイド

プログラミング・IT

プログラマーやシステム管理者の間で高く評価されるテキストエディタ「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」キーで移動します。これにより、手をホームポジションから離すことなく高速に移動できます。

キー方向覚え方のコツ
hhは一番左にある
jjは下に突き出ている
kkは上に突き出ている
llは一番右にある

実践例

# 基本移動
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>           # ノーマルモードに戻る

テキストの削除

コマンド機能説明
x1文字削除カーソル位置の文字
X1文字削除カーソル位置の前の文字
dd1行削除カーソルがある行全体
dw単語削除カーソル位置から単語の末尾まで
D行末まで削除カーソル位置から行末まで
d0行頭まで削除行頭からカーソル位置まで

実践例

x               # カーソル位置の1文字を削除
dd              # 現在行を削除
3dd             # 現在行から3行削除
dw              # 現在の単語を削除

テキストのコピーと貼り付け

Vimでは「削除=カット」「yank=コピー」と覚えるとわかりやすいです。

コマンド機能説明
yy1行コピー現在行をヤンク
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の特徴理解
  • ファイル操作の基本(保存・終了・開く)
  • 効率的なカーソル移動テクニック
  • テキスト編集の基本操作(挿入・削除・コピー・貼り付け)
  • 検索と置換の強力な機能
  • ビジュアルモードでの範囲選択操作

コメント

タイトルとURLをコピーしました