[Normal] h / j / k / l / gg / G / 0 / $
Normalモードでの基本移動キー。テキスト編集中のカーソル移動の土台になります。hjkl で左右上下、gg / G でファイル先頭・末尾へジャンプします。
# 左・下・上・右に1文字ずつ移動する(Normalモード) h j k l
# ファイル先頭の1行目に移動する gg
# ファイル末尾の行に移動する G
# 行頭(その行の最初のカラム)に移動する 0
# 行末(その行の最後の文字)に移動する $
Neovim でよく使う基本操作を、「モード」「やりたいこと」ごとに眺められるチートシートです。移動・編集・検索・ファイル/バッファ・ウィンドウ/タブ・ビジュアルモードなどを中心に、日本語のコメントと実行例付きで一覧できます。
[Normal] h / j / k / l / gg / G / 0 / $
Normalモードでの基本移動キー。テキスト編集中のカーソル移動の土台になります。hjkl で左右上下、gg / G でファイル先頭・末尾へジャンプします。
# 左・下・上・右に1文字ずつ移動する(Normalモード) h j k l
# ファイル先頭の1行目に移動する gg
# ファイル末尾の行に移動する G
# 行頭(その行の最初のカラム)に移動する 0
# 行末(その行の最後の文字)に移動する $
[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>
[Normal] i / a / o / O
NormalモードからInsertモードに入るためのキー。どこから入力を始めるかによって使い分けます。
# カーソル位置の手前から文字を入力する i
# カーソル位置の後ろから文字を入力する a
# 現在行の下に新しい行を挿入して、その行で入力を始める o
# 現在行の上に新しい行を挿入して、その行で入力を始める O
# InsertモードなどからNormalモードに戻る(あらゆる操作の基本) <Esc>
[Normal] dd / yy / p / P / 2dd など
行単位の削除・コピー(yank)・貼り付け(put)。数値を組み合わせることで複数行まとめて操作できます。
# 現在行を削除してレジスタにコピーする dd
# 現在行を削除せずにコピー(yank)する yy
# カーソルの下 (p) / 上 (P) に貼り付ける p / P
# 現在行を含めて2行まとめて削除する 2dd
# 現在行から3行分をまとめてコピーする 3yy
[Normal] u / <C-r>
直前の編集を取り消したり、取り消しをやり直したりする操作。慣れると怖がらずに編集できるようになります。
# 直前の操作を1回分取り消す u
# 直前の操作を3回分まとめて取り消す 3u
# 取り消した操作を1回分やり直す <C-r>
[Normal] /{検索語} / ?{検索語} / n / N
/ で前方検索、? で後方検索を行います。n / N で次・前のマッチへジャンプします。
# カーソル以降から 'error' を検索する /error<CR>
# 次のマッチ (n) / 前のマッチ (N) に移動する n / N
# カーソルより前方に向かって 'TODO' を検索する ?TODO<CR>
[Normal] * / # / g* / g#
カーソル下にある単語をそのまま検索語として扱うショートカット。記号や長い単語の検索に便利です。
# カーソル下の単語を前方 (*), 後方 (#) に検索する * / #
# 前方 (g*) / 後方 (g#) に対して、部分一致で検索する g* / g#
:[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!)
ファイルの保存や終了に関する基本コマンド。:q! は保存せず強制終了するため、実行前によく確認しましょう。
# 現在のバッファを保存する :w
# 変更がなければ終了する(未保存がある場合はエラーになる) :q
# 保存してから終了する :wq
# 変更を破棄して強制終了する(取り消せないので要注意) :q!
# 現在の内容を newname.txt として保存する(上書き保存とは別ファイル) :w newname.txt
:bnext / :bprev / :ls / :bd
nvimは複数ファイルをバッファとして同時に開けます。:bnext / :bprev で切り替え、:bd でバッファを閉じます。
# 現在開いているバッファ一覧を表示する :ls
# 次のバッファ / 前のバッファに移動する :bnext / :bprev
# バッファ番号 3 にジャンプする :b 3
# 現在のバッファを閉じる(ファイルを閉じるイメージ) :bd
# 未保存の変更を破棄してバッファを閉じる(要注意) :bd!
:split / :vsplit / <C-w>h/j/k/l
ウィンドウ分割でファイルを並べて表示できます。<C-w> 系のショートカットで分割間を移動します。
# 現在のウィンドウを横に分割する(上下に並べる) :split
# 現在のウィンドウを縦に分割する(左右に並べる) :vsplit
# 分割されたウィンドウ間を左/下/上/右に移動する <C-w>h/j/k/l
# 現在のウィンドウだけ閉じる <C-w>q
:tabnew / :tabclose / gt / gT
ブラウザのタブのように、複数のタブページを使って作業を分けることができます。
# 新しいタブページを開く :tabnew
# 次のタブ (gt) / 前のタブ (gT) に切り替える gt / gT
# 現在のタブページを閉じる :tabclose
# タブ番号 3 に移動する :tabnext 3
[Normal] v / V / <C-v> + 操作キー
ビジュアルモードで範囲を選択し、その範囲に対して削除・コピー・インデント・置換などをかけられます。
# 文字単位のビジュアルモードに入る v
# 行単位のビジュアルモードに入る V
# 矩形選択(ブロックビジュアルモード)に入る <C-v>
# 複数行を選択してコピーする v + jjj + y
# 選択した行を右側にインデントする V + >