Vimチートシート - 効率的なテキスト編集

中級 | 15分 で読める | 2025.12.12

公式ドキュメント

Vimとは

Vimは、Unix系OSで標準的に使われる高機能テキストエディタです。「モード」という概念を持ち、キーボードだけで効率的にテキスト編集ができます。サーバー管理やプログラミングで広く使われています。

モード切替

Vimには複数のモードがあり、それぞれ異なる役割を持ちます。

キーモード説明
i挿入モードカーソル位置の前に文字を入力
a挿入モードカーソル位置の後に文字を入力
I挿入モード行頭に移動して入力開始
A挿入モード行末に移動して入力開始
o挿入モード下に新しい行を挿入して入力
O挿入モード上に新しい行を挿入して入力
Escノーマルモード他のモードからノーマルモードに戻る
vビジュアルモード文字単位で選択
Vビジュアルモード行単位で選択
Ctrl+vビジュアルモード矩形選択(ブロック選択)
:コマンドモードexコマンドを入力
" モードの確認方法
" 左下に -- INSERT -- や -- VISUAL -- と表示される
" ノーマルモードでは何も表示されない

カーソル移動

効率的な移動はVimの生産性を大きく左右します。

基本移動

キー説明
h左に1文字移動
j下に1行移動
k上に1行移動
l右に1文字移動

単語単位の移動

キー説明
w次の単語の先頭へ(word)
W次の空白区切り単語へ
b前の単語の先頭へ(back)
B前の空白区切り単語へ
e単語の末尾へ(end)
E空白区切り単語の末尾へ

行内移動

キー説明
0行頭へ(列0)
^行の最初の非空白文字へ
$行末へ
f{char}行内で次の{char}へジャンプ
F{char}行内で前の{char}へジャンプ
t{char}次の{char}の直前へ
;f/F/tの検索を繰り返し

ファイル内移動

キー説明
ggファイル先頭へ
Gファイル末尾へ
{n}Gn行目へジャンプ
:{n}n行目へジャンプ
Ctrl+f1ページ下へスクロール
Ctrl+b1ページ上へスクロール
Ctrl+d半ページ下へスクロール
Ctrl+u半ページ上へスクロール
%対応する括弧へジャンプ
" 例: 100行目にジャンプ
100G
" または
:100

編集操作

削除

キー説明
xカーソル位置の1文字を削除
Xカーソル前の1文字を削除
dd1行削除(カット)
Dカーソルから行末まで削除
dw単語を削除
diw単語全体を削除(inner word)
di"ダブルクォート内を削除
di(括弧内を削除
d$カーソルから行末まで削除

コピー&ペースト

キー説明
yy1行コピー(yank)
yw単語をコピー
y$カーソルから行末までコピー
pカーソルの後にペースト
Pカーソルの前にペースト
"0p最後にヤンクしたテキストをペースト
"+yシステムクリップボードにコピー
"+pシステムクリップボードからペースト

変更(削除して挿入モードへ)

キー説明
cw単語を変更
ciw単語全体を変更
ci"ダブルクォート内を変更
cc行全体を変更
Cカーソルから行末まで変更
s1文字削除して挿入モード
S行を削除して挿入モード

取り消し・やり直し

キー説明
u取り消し(Undo)
Ctrl+rやり直し(Redo)
.直前の操作を繰り返し
" 例: 3回Undoする
3u

" 例: 直前の操作を5回繰り返す
5.

検索・置換

検索

キー説明
/{pattern}前方検索
?{pattern}後方検索
n次の検索結果へ
N前の検索結果へ
*カーソル位置の単語を前方検索
#カーソル位置の単語を後方検索
" 例: 'function'を検索
/function

" 例: 大文字小文字を無視して検索
/pattern\c

" 例: 正規表現で検索(単語境界)
/\<word\>

置換

" 現在行で最初の一致を置換
:s/old/new/

" 現在行で全ての一致を置換
:s/old/new/g

" ファイル全体で置換
:%s/old/new/g

" 確認しながら置換
:%s/old/new/gc

" 大文字小文字を無視して置換
:%s/old/new/gi

" 特定範囲(10行目から20行目)で置換
:10,20s/old/new/g

" 選択範囲で置換(ビジュアルモードで選択後)
:'<,'>s/old/new/g

ファイル操作

コマンド説明
:w保存
:w {filename}名前を付けて保存
:q終了
:q!保存せずに強制終了
:wq保存して終了
ZZ保存して終了(:wqと同じ)
ZQ保存せず終了(:q!と同じ)
:e {filename}ファイルを開く
:r {filename}ファイルの内容を挿入
:!{command}外部コマンドを実行
" 例: 現在のファイルをバックアップ
:w %.bak

" 例: シェルコマンドの結果を挿入
:r !date

ウィンドウ操作

コマンド説明
:split水平分割
:vsplit垂直分割
Ctrl+w h左のウィンドウへ
Ctrl+w j下のウィンドウへ
Ctrl+w k上のウィンドウへ
Ctrl+w l右のウィンドウへ
Ctrl+w =ウィンドウサイズを均等に
Ctrl+w qウィンドウを閉じる

マクロ

繰り返し作業を自動化できます。

" マクロの記録開始(qキー + レジスタ名)
qa

" 一連の操作を実行...

" 記録終了
q

" マクロを再生(@キー + レジスタ名)
@a

" マクロを5回実行
5@a

" 直前のマクロを再実行
@@

便利な設定(.vimrc)

" 行番号を表示
set number

" 相対行番号を表示
set relativenumber

" シンタックスハイライト
syntax on

" インデント設定
set tabstop=4
set shiftwidth=4
set expandtab

" 検索設定
set hlsearch      " 検索結果をハイライト
set incsearch     " インクリメンタル検索
set ignorecase    " 大文字小文字を無視
set smartcase     " 大文字を含む場合は区別

" クリップボード連携
set clipboard=unnamedplus

よく使うプラグイン

プラグイン説明
vim-plugプラグインマネージャー
NERDTreeファイルエクスプローラー
fzf.vimファジーファインダー
vim-fugitiveGit連携
coc.nvimLSP/補完

参考リンク

← 一覧に戻る