Vim研究所

Vim/Neovimの実践的な使い方や設定、開発効率化について書いています。

Articles

チートシート保存版

Vimチートシート。よく使うコマンド・キー操作一覧

移動・編集・検索置換・ウインドウ操作・レジスタ・マクロを目的別に整理した一覧。各項目から詳細記事にもリンク。

レジスタ基本操作

Vimのレジスタは何種類ある?覚えておくべき使い分けとハマりやすい勘違い

無名・番号付き・名前付き・読み取り専用など全48種類を整理し、実務でよく使うものだけに絞って使い分けとハマりどころを解説する。

Neovim比較

neovimとは何か?Vimとの違いを今から知るならここだけ見ればいい

neovimはVimのフォークの一つ。何が違うのか、なぜ選ばれているのかをLSP・Lua設定・Treesitterを軸に整理する。

NeovimWindows

Windows に Neovim を最短でインストールする方法

wingetでの導入から、モダンなプラグインマネージャで最小構成のinit.luaを組むところまでの手順。

WindowsTips

Windows で GVim/Neovim を右クリックメニューから開けるようにする

レジストリを編集して、任意のファイルを右クリックメニューからGVim/Neovimで開けるようにする手順。

学習

Vimを好きになるために、まず1週間だけ使い続けてみる

Vimが苦手なうちに挫折しやすい理由と、好きになるまでの間だけ意識しておくとよいこと。

設定Tips

Vimの設定を一時的に全部初期値へ戻すコマンド :set all&

プラグインなしでVim/Neovimのオプションを一時的にすべてデフォルトへ戻す方法と注意点。

Tipsデバッグ

Vimの:messagesなどコマンド結果をバッファに出力してコピーする方法

通常は選択・コピーできないVimの内部出力を、execute()でバッファに書き出してテキスト化する。

キーマッピング設定

Vimの<Leader>キーとは?mapleaderの設定とキーマッピングの使い分け

mapleaderの設定方法と、独自キーマッピングを既存機能と衝突させずに増やすコツ。

基本操作用語

Vimの「バッファ」「ウィンドウ」「タブ」の違いを整理する

なんとなく使い分けているVimのバッファ・ウィンドウ・タブの関係を、実際の見え方から整理する。

タブ基本操作

Vimのタブ操作まとめ。開く・閉じる・切り替える、ブラウザ風キーバインドも

Vimのタブを開く・閉じる・切り替える基本コマンドと、ブラウザ感覚で使うためのキーマッピング例。

一括処理Tips

Vimで複数ファイルを一括処理する方法。windo/bufdo/tabdoの使い分け

開いている複数のウィンドウ・バッファ・タブに同じコマンドをまとめて実行する活用パターン。

検索Tips

Vimの検索オフセットで、検索後のカーソル位置を指定する

検索コマンドに/{offset}を付けて、マッチ位置から直接カーソルを移動させる方法。

設定Tips

Vimのステータスラインを表示/非表示にするlaststatusの設定

laststatusオプションの3段階と、Vim/Neovimでデフォルト値が違う点を解説。

マクロTips

Vimのマクロで複雑な繰り返し作業を自動化する

マクロの記録・実行・編集の基本と、行末へのセミコロン挿入などよく使う具体例。

netrwファイラー

netrwでファイルを開く5つの方法。分割・タブ・プレビューの使い分け

Vim標準のファイラnetrwで、Enter・o・v・t・pそれぞれのファイルの開き方と使い分け。

テキストオブジェクト基本操作

Vimのcwとciwの違い。単語の途中にカーソルがあるときに差が出る

単語頭にカーソルがあれば同じ動作だが、途中にあると挙動が変わる理由を解説。

基本操作Tips

Vimのcwとdwの違い。末尾の空白の扱いが違う理由

cwは単語末尾の空白を残し、dwは空白ごと削除する。この非対称な仕様の理由を解説。

置換基本操作

Vimで行内の文字を置換する4つの方法、どれを使えばいいか

置換モードR・:s・ビジュアルモード・オペレータ+テキストオブジェクトを比較する。

大文字小文字Tips

Vimで大文字・小文字を変換する方法まとめ(範囲指定/1文字/置換)

ビジュアルモード・gU/gu・~・置換コマンドまで、大文字小文字変換の全パターン。

大文字小文字ハマりどころ

Vimのu/Uキーがアンドゥと大文字小文字変換の二重の意味を持つ理由

ノーマルモードとビジュアルモードでu/Uの意味が変わる仕組みと、混同を避けるコツ。

netrwファイラー

netrwを起動する方法まとめ。Explore系コマンドとgfキーバインド

:Explore系、:edit系、gfキーバインドなど、netrwを起動する複数の方法を整理。

netrwTips

netrwのファイル一覧表示を切り替える。thin/long/wide/tree

netrwのファイル一覧表示形式(thin/long/wide/tree)をiキーで切り替える方法。

netrwTips

netrwでよく使うディレクトリをブックマークする(mb/gb/qb)

netrwのディレクトリブックマーク機能でよく使う場所へ素早く移動する方法。

netrwファイラー

netrwでファイルをコピー・移動する。マーク機能の使い方

netrwでファイルにマークを付けて一括コピー・移動・削除する操作手順。

netrwTips

netrwでファイルを圧縮・解凍する(mz)と圧縮形式の変更

netrwのmzコマンドでファイルを圧縮・解凍する方法と、圧縮形式カスタマイズの注意点。

netrw設定

netrw上部のバナーを非表示にする(Iキー / g:netrw_banner)

netrwの操作説明バナーを一時的に、または恒常的に非表示にする方法。

netrwリモート編集

netrwでリモートサーバのファイルを直接編集する(SCP/SFTP)

プラグインなしでnetrwのscp://・sftp://プロトコルを使いリモートファイルを直接編集する方法。

プラグイン比較

Neovimのファイラー比較。netrw/nvim-tree/neo-tree/oil.nvim

標準のnetrwと主要なファイラー系プラグインの特徴を比較し、選び方を整理する。

折りたたみ基本操作

Vimの折りたたみを開閉するコマンド一覧(za/zo/zc/zM/zRほか)

多数ある折りたたみ開閉コマンドのうち、実際に覚えておくべきものを絞って解説。

折りたたみ基本操作

Vimで折りたたみを作る・消す(zf/zd/zD/zE)

任意の範囲を一時的に隠すzfコマンドと、折りたたみを解除するzd/zD/zEの使い方。

折りたたみTips

Vimで折りたたみの間をジャンプ移動する(zj/zk)

折りたたみ箇所が多いファイルで、次/前の折りたたみへ一気に移動する方法。

Undo基本操作

Vimのundo/redoの基本と、ファイルを閉じても履歴を保つ設定

u/Ctrl-rによる基本操作に加えて、ファイルを閉じても取り消し履歴を残す設定。

文字コード設定

Vimで文字コードを変更して保存する(fileencoding/fenc)

保存時の文字コードを変更するfileencoding(fenc)オプションの使い方。

文字コードTips

Vimで開いているファイルの文字コードを確認する方法

:set enc?で今の文字コードを確認する方法と、ステータスラインへの表示設定。

文字コードTips

Vimで文字化けしたファイルを別の文字コードで開き直す(:e ++enc=)

自動判定で文字化けしたファイルを、指定した文字コードで読み込み直す方法。

コマンド実行Tips

Vimからシェルコマンドを実行する方法(:! と :terminal)

Vimを閉じずにOSコマンドを実行する:!と、ターミナルをウィンドウ内で使う:terminal。

コマンド実行Tips

Vimでシェルコマンドの出力をバッファに直接挿入する(:r!)

lsやpwdの実行結果をコピペせず、:r!コマンドで直接バッファに挿入する方法。

トラブルシューティングTips

設定ファイルが読み込まれない時に使う:scriptnames

vimrcやプラグインが読み込まれているかを確認する:scriptnamesコマンドの使い方。

移動基本操作

Vimの単語移動8種類。w/b/e/geとW/B/E/gEの違い

単語単位で移動するw/b/e/geと、記号を無視するW/B/E/gEの違いと使い分け。

移動基本操作

Vimで1文字検索して移動する(f/F/t/T)と繰り返し(;/,)

カーソルを指定した文字へ一発で移動させるf/Fと、その手前で止まるt/Tの違い。

移動基本操作

Vimのhjklと矢印キー、結局どっちを使うべきか

hjklが推奨される理由と、例外的に矢印キーが有利な場面を解説。

移動基本操作

Vimで行頭・行末へ移動する(0/^/$)とインデントの扱い

行頭移動の0と^はインデントの扱いが違う。行末移動の$とあわせて解説。

移動Tips

Vimのマーク機能で好きな位置にジャンプする(m/`/'/:marks)

任意の位置に印を付けてジャンプするマーク機能と、自動設定される特殊マーク。

基本操作効率化

Vimのドットコマンド(.)で直前の編集を繰り返す

Vimmerが最初に覚えるべき.コマンドの仕組みと、マクロとの違い。

移動基本操作

Vimの画面スクロールとジャンプ操作(Ctrl-f/b/u/d, gg/G/%)

1画面/半画面スクロールと、ファイル先頭末尾・対応する括弧へのジャンプ。

練習問題オペレータ

オペレータ+モーション練習ドリル5問

キー操作の結果を予測してから答え合わせする、実践形式のドリル5問。

検索オペレータ

Vimでオペレータ+検索モーションを使う(c/ d/ y/)

検索キーワードをモーションとして使い、複数行にまたがる範囲を一気に操作する方法。

検索基本操作

Vimの文字列検索の基本(/ と ?)と正規表現の入り口

行頭/行末指定・OR検索など、最初に覚えておきたい正規表現パターンを解説。

検索Tips

Vimの検索ハイライトを消す(:nohlsearch)といちいち消さない設定

残り続けるハイライトを消す:nohlsearchと、キーマッピングで手間を省く方法。

正規表現Tips

Vimの正規表現で最短マッチを使う(.\{-})

HTMLタグの属性値だけを置換したいときに欠かせない最短マッチの使い方。

検索基本操作

カーソル下の単語を一発検索する(*/#/g*/g#)

単語を入力し直さずカーソル下の単語をそのまま検索する*/#と、部分一致のg*/g#。

検索オペレータ

直前の検索キーワードをそのまま変更するcgn/cgN

検索した単語を移動し直さず、cgnで直接変更に入る方法。

基本操作Tips

Vimのsとcの違い。sは実質cl

似ているようで違うsとcコマンドの関係をシンプルに整理する。

Tips基本操作

Vimで行を並べ替える(:sort)と重複行を消す方法

昇順・降順ソート、範囲指定、重複排除(:sort u)までプラグイン無しでできる並べ替え。

Tips基本操作

カーソル下のパスをそのまま開く(gf)と分割・タブでの開き方

import文やhref属性のパスをコピペせずに開くgfコマンドの使い方。

Tips基本操作

プラグイン無しでファイル名からファイルを探す(:find)

path+=$PWD/**を設定して:findで名前の一部からファイルを探す方法。

検索Tips

Vimの検索コマンドラインで単語を補完する(Ctrl-r Ctrl-w)

検索キーワードを途中まで入力してカーソル下の単語で補完する方法。

Tips基本操作

変数の宣言位置へジャンプする(gd/gD)

LSP無しでも使える標準機能、ローカル宣言/グローバル宣言へのジャンプ。

置換Tips

:substituteコマンド活用集。全置換・行頭行末への挿入・確認付き置換

:%s///gの基本から、行頭行末への文字列挿入、確認しながらの置換までまとめる。

レジスタTips

Vimのexpressionレジスタ「=」で計算結果を挿入する

プラグイン無しで式を評価してそのまま挿入できるexpressionレジスタの使い方。

レジスタTips

Vimの名前付きレジスタで複数箇所を集める("a〜"z / "A〜"Z)

小文字は上書き、大文字は追記。複数箇所を1つのレジスタに集める方法。

レジスタハマりどころ

Vimの番号付きレジスタ「"0〜"9」の仕組みを正確に理解する

検索モーションが絡む例外パターンなど、番号付きレジスタのルールを正確に解説。

レジスタTips

Vimの読み取り専用レジスタ("% "# ": ".)の実践的な使い道

ファイル名や直前のコマンドを自動保持する読み取り専用レジスタの実用例。

レジスタ基本操作

Vimでレジスタを貼り付ける全パターン(ノーマル/挿入/コマンドライン)

p/Pだけじゃない、モードごとのレジスタ貼り付けキーバインドを一覧で整理。

レジスタ基本操作

Vimのコピー(ヤンク)操作いろいろ。文字/行/矩形範囲

yl/yy/nyy/矩形選択など、ヤンク操作のバリエーションを整理する。

練習問題レジスタ

レジスタ練習クイズ6問(選択式)

インサートモードでの貼り付け方法など、レジスタの使い方を選択式クイズで確認。

設定Tips

Vimでファイルタイプを手動指定してハイライトを適用する

無題バッファや自動判定が誤った場合にfiletypeを手動指定する方法。

gVim設定

gVimのメニュー・ツールバー・スクロールバーを消す(guioptions)

gVimのGUIパーツをguioptionsでまとめて、または個別に表示/非表示にする方法。

gVim設定

gVimのフォントを変更する(guifont)

gVimの表示フォントを変更する方法と、ターミナル版に効かない理由。

設定Tips

Vimの配色テーマを変更する(:colorscheme)

標準搭載のカラースキームに切り替える方法と、外部テーマ導入時の注意点。

設定Tips

Vimでタブ・改行・行末スペースを可視化する(listchars)

見えない文字を記号表示し、タブとスペースの混在を発見しやすくする方法。

Tips基本操作

Vimでファイルを読み取り専用モードで開く(-R / view)

誤って変更したくないファイルを読み取り専用モードで開く方法。

キーマッピング設定

Vimで独自キーマッピングに使える未割り当てキー一覧

既存機能を潰さずに独自マッピングを追加できる、未割り当て/代替可能キーの一覧。

キーマッピングTips

ESCキーの代わりになるキー(Ctrl-[ と Ctrl-c の違い)

ホームポジションを崩さずノーマルモードに戻るCtrl-[と、Ctrl-cの挙動の違い。

キーマッピングTips

設定したキーマッピングの一覧を確認する(:map / :verbose map)

モード別のキーマッピング一覧表示と、定義元ファイルまで分かるverbose map。

改行コードTips

Vimで改行コードを変更して開き直す(fileformat)

CRLF/LF/CRの改行コードを指定して読み込み直す方法。

設定Tips

Vimの設定値を確認する(:set と :set all の違い)

変更した値だけを表示する:setと、すべてのオプションを表示する:set allの違い。

設定基本操作

Vimの相対行番号(relativenumber)で縦移動を強化する

カーソル行からの相対的な行番号を表示し、カウント付き移動を使いやすくする。

設定トラブルシューティング

Vimのランタイムパスを確認する(runtimepath)

プラグインが読み込まれないときにまず確認すべき検索先ディレクトリ一覧。

Neovim設定

Neovimの設定を1から書かず始める方法(kickstart.nvim/LazyVim)

フォークして育てるkickstart.nvimと、すぐ使える完成形のLazyVimを紹介。

設定Tips

Vimのタブバーを表示/非表示にする(showtabline)

タブが1つのときは隠し、複数あるときだけ表示するshowtablineの設定。

Neovimトラブルシューティング

Neovimの構成診断コマンド:checkhealthの使い方

インストール状態やプラグインの動作をまとめて診断できる:checkhealthの使い方。

Neovim設定

init.vimとginit.vimの違い(Neovimの設定ファイル)

設定全般を扱うinit.vimと、GUI固有の設定を担うginit.vimの役割の違い。

Neovim環境構築

Windows 10/11にNeovimを最短でインストールする方法

wingetコマンド1行でWindowsにNeovimを導入する方法とGUIクライアントの選択肢。

NeovimTips

NeovimをUSBメモリに入れてポータブル運用する方法

本体・設定・プラグインをUSBメモリにまとめ、インストール不要な環境で使う構成。

Neovim設定

Windows版Neovimの設定ファイルの配置場所

init.vim/init.luaを置く標準パスと、XDG_CONFIG_HOMEで変更する方法。

NeovimTips

nvim-qtの起動オプションまとめ

最大化・フルスクリーン・ウインドウサイズ・設定ファイル指定の起動パラメータ集。

Neovim設定

Vim/NeovimでPythonの実行パスを設定・確認する方法

g:python3_host_progでのパス指定と、has('python3')/checkhealthでの確認方法。

Neovim環境構築

WindowsでNeovimをPython開発環境として構築する手順

lazy.nvim・mason.nvim・LSP・blink.cmpでPython向けIDEに仕立てる構成をゼロから解説。

Neovim環境構築

DockerでVim/Neovimの検証用サンドボックス環境を作る

設定やプラグインを壊れる心配なく試せる、使い捨ての検証環境をDockerで用意する方法。

ファイル操作Tips

Vimで開いているファイルを再読み込みする(:e!)

外部で更新されたファイルを再読込する:e!と、全バッファ/全タブをまとめて再読込する方法。

ファイル操作Tips

Vimでカーソル位置・単語数・文字数を確認する(Ctrl-g / g Ctrl-g)

位置確認のCtrl-gと詳細表示のg Ctrl-g、置換コマンドでの柔軟なカウント方法。

ファイル操作Tips

Vimでファイルパスを補完・挿入する方法(Ctrl-x Ctrl-f)

パス補完のCtrl-x Ctrl-fと、OSコマンドの出力を挿入する:r!の使い分け。

ファイル操作Tips

Vimで別ファイルの内容をカーソル位置に読み込む(:read)

テンプレートファイルなどを:readで差し込む方法と、挿入位置の指定方法。

ファイル操作Tips

Vimで最近使ったファイルを開く(:oldfiles)

ファイル履歴から開く:bro olコマンドと、:filterによる絞り込み方法。

検索・置換ウインドウ

Vimで開いている全バッファを検索する(bufdo + vimgrep + cwindow)

:bufdo vimgrep + cwindowで、開いている全バッファを一括検索し一覧表示する。

バッファTips

Vimのバッファ一覧(:ls)の読み方と絞り込み方

:lsで表示される記号の意味と、状態やファイル名で絞り込んで表示する方法。

ウインドウTips

Vimでウインドウを閉じる4つの方法の違い

:q/:q!/:close/:hideの違いと、最後のウインドウでVimが終了する条件。

ウインドウ基本操作

Vimでウインドウを分割する方法(:split / :vsplit / :new / :vnew)

水平分割・垂直分割それぞれの、既存ファイル分割と新規バッファ用コマンドまとめ。

ウインドウTips

Vimでウインドウ間をカーソル移動する方法(Ctrl-w)

Ctrl-w hjklでの方向移動、Ctrl-w wでの順次移動、特殊移動をまとめて解説。

ウインドウTips

Vimでウインドウの位置を入れ替える方法(Ctrl-w r/x/K/J/H/L)

ウインドウの回転・入れ替えと、端に移動して最大化するレイアウト変更キー。

検索・置換Tips

Vimで複数ファイルを横断検索する(vimgrep + cwindow)

ワイルドカードでファイル指定して検索し、cwindowで結果を一覧表示する方法。

検索・置換Tips

Vimのvimgrepとgrepの違い(内部grepと外部grep)

速度・対象・エンコーディング認識などの違いを比較し、grepprgの変更方法も紹介。

ウインドウTips

Vimで今のウインドウ以外を閉じる方法(Ctrl-w o / :only)

カレントウインドウだけを残して他を全部閉じる方法と、未保存変更時の挙動。

ウインドウTips

Vimでウインドウのサイズを変更する方法(Ctrl-w +/-/</>、:resize)

幅・高さの変更キーとresizeコマンド、全ウインドウを揃えるCtrl-w =の使い方。

ExコマンドTips

Vimのコマンドラインウインドウの使い方(q: / q/)

コマンド・検索履歴をバッファとして編集・再実行できる機能の使い方。

設定Exコマンド

Vimでユーザー定義コマンドを作る方法(:command)

自作のExコマンドを定義する方法、引数の扱い方、実用的な設定例まとめ。

diffTips

Vimでファイル間の差分を表示する(vimdiff / :diffsplit)

vimdiffや:diffsplitで差分を色分け表示し、差分箇所を移動する方法。

diffTips

Vimでファイル間の差分をマージする(:diffget / :diffput)

相手の変更を取り込むdoと、自分の変更を渡すdpの使い方、パッチのマージ方法。

テキストオブジェクトTips

Vimで括弧・引用符の中身を書き換える(ci" / ci( / ci{ / ci[)

カーソル位置を気にせず囲みブロックの中身だけを書き換えるテキストオブジェクト。

テキストオブジェクトTips

VimでHTMLタグの中身・属性値を書き換える(cit / dat)

タグの中身を書き換えるcitと、タグごと削除するdatの使い方。

Tips基本操作

Vimで特殊記号を入力する方法(文字コード指定 / ダイグラフ)

Ctrl-vでの文字コード直接指定と、2文字の組み合わせで入力するダイグラフ。

入門基本操作

Vimの最低限の使い方。モード・移動・保存だけ知っておく入門ガイド

とりあえずVimを使う必要がある人向けに、詰まないための最低限だけをまとめた。

入門読み物

コマンド・Exコマンド・キーマッピングの違いを整理する

混同しがちなVim用語をヘルプの表記に沿って整理する。

入門基本操作

Vim/Neovimの標準チュートリアルを使う(vimtutor / :Tutor)

環境ごとのチュートリアル起動方法と、演習を定着させる繰り返しのコツ。

入門学習

Vimをオンラインで学べるサイト・学習ゲームまとめ

OpenVim、VimGolf、VIM Adventuresなどブラウザだけで練習できるサイトを紹介。

読み物入門

なぜVimmerはVimを使い続けるのか

操作性・ホームポジション・汎用性・カスタマイズ性の観点から理由を整理する。

Tips基本操作

Vimで現在の日付・時刻を挿入する方法(strftime)

プラグインなしでstrftime()を使い、好きなフォーマットで日時を挿入する方法。

Tips基本操作

Vimの標準入力補完(Ctrl-n / Ctrl-p / Ctrl-x)の使い方

プラグインなしのキーワード補完と、対象を絞り込むCtrl-xのサブモード。

設定Tips

Vimでファイルを自動保存する方法(autocmd / auto-save.nvim)

プラグインなしのautocmdによる自動保存と、Neovim向けプラグインの使い方。

プラグインNeovim

Vim/Neovimにスタート画面を追加する(vim-startify / snacks.nvim)

起動直後に最近使ったファイルを一覧表示するプラグインをVim/Neovim別に紹介。

Neovim環境構築

VSCodeユーザーがVimに移行する方法(vscode-neovim / Neovide)

VSCodeの機能を保ったままVim操作を導入する方法と、段階的な移行の進め方。

トラブルシューティング設定

gVimでプラグイン設定が反映されない原因(.vimrcと.gvimrcの違い)

GUI専用設定ファイルに書いてしまいがちな設定と、症状からの切り分け方。

プラグインTips

Vimでマルチカーソルを使う方法と、標準機能だけで代用する方法

vim-visual-multiの導入方法と、置換・ビジュアルブロックで代用できる場面。

基本操作Tips

Vimでインデントを増減する方法(>> / << / shiftwidth)

1行・複数行のインデント操作と、言語別にインデント幅を設定する方法。

環境構築Tips

ブラウザのクラウドIDEでVimキーバインドを使う方法

GitHub CodespacesなどでVim拡張を有効にする方法。Cloud9の現状にも言及。

環境構築設定

複数デバイスで同じVim環境を使う(VPS + SSH構成)

VPS上に1つだけ環境を用意し、どの端末からもSSHで同じ設定を使う構成。

読み物学習

Vim/Neovimの学習段階別おすすめ書籍

基本操作・実務Tips・Vim script・モダン構成、段階に応じた書籍の選び方。

読み物Tips

Vimmerがキーボード選びで重視すべきポイント

Ctrlキーの位置、矢印キーの有無、打鍵感がVim操作にどう効いてくるか。

入門基本操作

Vimのヘルプを使いこなす方法(:help)

タブ補完・ワイルドカード・モード接頭辞を使った効率的なヘルプ検索のコツ。

検索・置換学習

正規表現検索の練習ドリル5問

*/cgn/カウント付き検索など、実行結果を予測してから確認する実践ドリル。

検索・置換学習

正規表現置換の練習ドリル5問

グループ参照・大文字小文字変換・\zsを使った置換パターンの予測ドリル。