Neovim Cheatsheet

Neovim でよく使う基本操作を、「モード」「やりたいこと」ごとに眺められるチートシートです。移動・編集・検索・ファイル/バッファ・ウィンドウ/タブ・ビジュアルモードなどを中心に、日本語のコメントと実行例付きで一覧できます。

カテゴリ

移動(Normalモード)

h j k l / gg / G基本移動(上下左右・先頭/末尾へ移動)

[Normal] h / j / k / l / gg / G / 0 / $

安全度: 低(閲覧・移動中心)

Normalモードでの基本移動キー。テキスト編集中のカーソル移動の土台になります。hjkl で左右上下、gg / G でファイル先頭・末尾へジャンプします。

#移動#Normal#先頭#末尾#行頭#行末
# 左・下・上・右に1文字ずつ移動する(Normalモード)
h j k l
# ファイル先頭の1行目に移動する
gg
# ファイル末尾の行に移動する
G
# 行頭(その行の最初のカラム)に移動する
0
# 行末(その行の最後の文字)に移動する
$
w / b / { } / <C-u> / <C-d>単語単位・ページ単位で移動

[Normal] w / b / { / } / <C-u> / <C-d>

安全度: 低(閲覧・移動中心)

単語や段落、画面単位で素早く移動するためのキー。長いファイルを読む・ログを追うときに便利です。

#移動#単語#段落#スクロール
# 次の単語先頭 (w) / 前の単語先頭 (b) に移動する
w / b
# 段落単位で前 ({) / 次 (}) の空行まで移動する
{ / }
# 画面の半分を上 (<C-u>) / 下 (<C-d>) にスクロールする
<C-u> / <C-d>
# 1画面分を下 (<C-f>) / 上 (<C-b>) にスクロールする
<C-f> / <C-b>

編集・削除・挿入

i / a / o / O挿入モードへの移行(文字入力の開始)

[Normal] i / a / o / O

安全度: 中(内容が変わる操作)

NormalモードからInsertモードに入るためのキー。どこから入力を始めるかによって使い分けます。

#挿入#Insert#入力
# カーソル位置の手前から文字を入力する
i
# カーソル位置の後ろから文字を入力する
a
# 現在行の下に新しい行を挿入して、その行で入力を始める
o
# 現在行の上に新しい行を挿入して、その行で入力を始める
O
# InsertモードなどからNormalモードに戻る(あらゆる操作の基本)
<Esc>
dd / yy / p / P行の削除・コピー・貼り付け

[Normal] dd / yy / p / P / 2dd など

安全度: 中(内容が変わる操作)

行単位の削除・コピー(yank)・貼り付け(put)。数値を組み合わせることで複数行まとめて操作できます。

#削除#コピー#貼り付け#yank
# 現在行を削除してレジスタにコピーする
dd
# 現在行を削除せずにコピー(yank)する
yy
# カーソルの下 (p) / 上 (P) に貼り付ける
p / P
# 現在行を含めて2行まとめて削除する
2dd
# 現在行から3行分をまとめてコピーする
3yy
u / <C-r>取り消し・やり直し

[Normal] u / <C-r>

安全度: 中(内容が変わる操作)

直前の編集を取り消したり、取り消しをやり直したりする操作。慣れると怖がらずに編集できるようになります。

#undo#redo#取り消し
# 直前の操作を1回分取り消す
u
# 直前の操作を3回分まとめて取り消す
3u
# 取り消した操作を1回分やり直す
<C-r>

検索・置換

/pattern / ?patternテキストの検索(前方 / 後方)

[Normal] /{検索語} / ?{検索語} / n / N

安全度: 低(閲覧・移動中心)

/ で前方検索、? で後方検索を行います。n / N で次・前のマッチへジャンプします。

#検索#forward#backward
# カーソル以降から 'error' を検索する
/error<CR>
# 次のマッチ (n) / 前のマッチ (N) に移動する
n / N
# カーソルより前方に向かって 'TODO' を検索する
?TODO<CR>
* / #カーソル下の単語を検索

[Normal] * / # / g* / g#

安全度: 低(閲覧・移動中心)

カーソル下にある単語をそのまま検索語として扱うショートカット。記号や長い単語の検索に便利です。

#検索#単語検索
# カーソル下の単語を前方 (*), 後方 (#) に検索する
* / #
# 前方 (g*) / 後方 (g#) に対して、部分一致で検索する
g* / g#
:%s/old/new/gc文字列置換(置換前に確認するのが基本)

:[range]s/{検索}/{置換}/[フラグ]

安全度: 高(慎重に実行)

検索パターンにマッチしたテキストを別のテキストに置き換えます。範囲やフラグを付けて慎重に使いましょう。c フラグで1件ごとに確認するのがおすすめです。

#置換#検索置換#サーチアンドリプレイス
# バッファ全体で 'foo' を 'bar' に一括置換する(確認なし・要注意)
:%s/foo/bar/g
# バッファ全体で 'foo' を 'bar' に置換する前に1件ずつ確認する(推奨)
:%s/foo/bar/gc
# 行末の余分な空白をすべて削除する
:%s/\s\+$//g
# ビジュアル選択範囲('<,'>)内だけで置換を行う
:'<,'>s/foo/bar/g

ファイル・バッファ操作

:w / :q / :wq / :q!ファイルの保存・終了

:[コマンド] (例: :w, :q, :wq, :q!)

安全度: 中(内容が変わる操作)

ファイルの保存や終了に関する基本コマンド。:q! は保存せず強制終了するため、実行前によく確認しましょう。

#保存#終了#quit#write
# 現在のバッファを保存する
:w
# 変更がなければ終了する(未保存がある場合はエラーになる)
:q
# 保存してから終了する
:wq
# 変更を破棄して強制終了する(取り消せないので要注意)
:q!
# 現在の内容を newname.txt として保存する(上書き保存とは別ファイル)
:w newname.txt
:bnext / :bprev / :bdバッファ(開いているファイル)の切り替え

:bnext / :bprev / :ls / :bd

安全度: 中(内容が変わる操作)

nvimは複数ファイルをバッファとして同時に開けます。:bnext / :bprev で切り替え、:bd でバッファを閉じます。

#バッファ#ファイル切り替え
# 現在開いているバッファ一覧を表示する
:ls
# 次のバッファ / 前のバッファに移動する
:bnext / :bprev
# バッファ番号 3 にジャンプする
:b 3
# 現在のバッファを閉じる(ファイルを閉じるイメージ)
:bd
# 未保存の変更を破棄してバッファを閉じる(要注意)
:bd!

ウィンドウ・タブ

:split / :vsplit / <C-w>画面分割と分割ウィンドウの移動

:split / :vsplit / <C-w>h/j/k/l

安全度: 中(内容が変わる操作)

ウィンドウ分割でファイルを並べて表示できます。<C-w> 系のショートカットで分割間を移動します。

#分割#ウィンドウ#split
# 現在のウィンドウを横に分割する(上下に並べる)
:split
# 現在のウィンドウを縦に分割する(左右に並べる)
:vsplit
# 分割されたウィンドウ間を左/下/上/右に移動する
<C-w>h/j/k/l
# 現在のウィンドウだけ閉じる
<C-w>q
:tabnew / gt / gTタブページの追加・切り替え

:tabnew / :tabclose / gt / gT

安全度: 中(内容が変わる操作)

ブラウザのタブのように、複数のタブページを使って作業を分けることができます。

#タブ#tab#レイアウト
# 新しいタブページを開く
:tabnew
# 次のタブ (gt) / 前のタブ (gT) に切り替える
gt / gT
# 現在のタブページを閉じる
:tabclose
# タブ番号 3 に移動する
:tabnext 3

ビジュアルモード

v / V / <C-v>ビジュアルモードで範囲選択

[Normal] v / V / <C-v> + 操作キー

安全度: 中(内容が変わる操作)

ビジュアルモードで範囲を選択し、その範囲に対して削除・コピー・インデント・置換などをかけられます。

#ビジュアル#範囲選択#Visual
# 文字単位のビジュアルモードに入る
v
# 行単位のビジュアルモードに入る
V
# 矩形選択(ブロックビジュアルモード)に入る
<C-v>
# 複数行を選択してコピーする
v + jjj + y
# 選択した行を右側にインデントする
V + >