ガイド

CursorでVimモードを完全活用する方法【2026年最新】:設定・キーバインド・AI連携まで徹底解説

室谷東吾
監修者室谷東吾(@0x__tom

株式会社MYUUU 代表取締役 / 日本最大級AIコミュニティ「.AI」創設者(累計2,000名超)/ セプテーニ・ホールディングス(電通グループ)と資本業務提携 / 著書「お金を使わず、AIを働かせる『Dify』活用」(ぱる出版、3刷)/ Xフォロワー約2万人

テキトー教師
監修者テキトー教師(@tekitoo_T_cher

.AI 認定講師 / 教育×AIの専門家 / 累計300名以上にAI活用を指導 / 「テキトーに学ぶ」がモットーの実践派講師 / Xアカウント

CursorでVimモードを完全活用する方法【2026年最新】:設定・キーバインド・AI連携まで徹底解説

CursorでVimモードを使う方法、ちゃんと知ってる?

室谷室谷
今回はCursorでVimモードを使う話をしましょう。.AI(ドットエーアイ)コミュニティでも「CursorでVim使えるんですか?」って質問、定期的に出るんですよね・・・
テキトー教師テキトー教師
ですよね。講座でも「Cursorインストールしたらなぜかキーが効かない」って相談が結構あって、よく聞くと初期設定でVimモードを選んでしまってたパターンなんですよ。

逆に「Vimmerだけど使えるの?」っていう質問も多いです。
室谷室谷
CursorはVS Codeベースなので、VSCodeVimという拡張機能がそのまま動きます。これがめちゃくちゃ優秀で、Vimのキーバインドがほぼ完全に再現されるんですよね。
テキトー教師テキトー教師
しかもCursorのAI機能とVimの操作が両立するので、「AIでコード生成→Vimで素早く編集」という流れが作れるんです。ここが他のVimプラグインとの大きな違いですね。
室谷室谷
MYUUUのエンジニアでもVimmer派が何人かいて、みんなCursorに移行しても手放せないって言ってます。じゃあ具体的に設定方法から見ていきましょう。

CursorでVimモードを有効化する手順

VSCodeVim拡張機能のマーケットプレイスページ(公式サイトより)

室谷室谷
まず基本中の基本、CursorでVimモードを有効にする方法です。やることは2つだけですね。
テキトー教師テキトー教師
1つ目は拡張機能のインストールです。Cursorの拡張機能タブ(Cmd+Shift+X)を開いて「Vim」で検索すると、vscodevim.vimという拡張機能が出てきます。

これをインストールするだけです。
室谷室谷
ちなみにCursorの初回セットアップ時に「キーバインドの選択」画面が出るんですが、ここでVimを選ぶと自動でインストールされます。意図せずVimモードになってしまう人は、ここで選んでしまってるパターンですね・・・
テキトー教師テキトー教師
そうそう。コミュニティのメンバーさんで「カーソルキーが効かない!」って焦ってた方がいて、原因がこれでした(笑)
室谷室谷
2つ目として、拡張機能をインストールしたら再起動するのがおすすめです。稀にキーバインドが反映されないことがあるので。
テキトー教師テキトー教師
逆にVimモードを無効化したい場合は、コマンドパレット(Cmd+Shift+P)から「Cursor Vim: Remove Vim Mode」を実行するか、拡張機能を無効化すれば元に戻ります。
室谷室谷
ここまでが基本の有効化・無効化です。ちなみにVSCodeVimのplugin(拡張機能)はインストール数が860万を超えていて、VS Code系エディタのVim拡張としては圧倒的に定番ですね。

インストール時にVimモードを選んでしまった場合

テキトー教師テキトー教師
さっきも触れましたが、Cursorの初期セットアップで誤ってVimを選んでしまうケースが本当に多いんです。
室谷室谷
対処法はシンプルで、拡張機能タブからVimを探してアンインストールか無効化するだけです。もしくはコマンドパレットで「Cursor Vim: Remove Vim Mode」を実行する。
テキトー教師テキトー教師
初心者の方には「拡張機能タブで右クリック→無効にする」が一番わかりやすいと思います。アンインストールしなくても無効化だけで通常の入力モードに戻りますから。

Macでのキーリピート設定(Vim key repeat・連続入力の必須設定)

室谷室谷
ここ、Macユーザーは絶対にやらないといけない設定です。Vimモードを入れたのにキーを長押ししても連続入力されない問題。
テキトー教師テキトー教師
これはmacOSの仕様で、長押しすると文字候補のポップアップが出るんですよね。hjklで移動するVimにとっては致命的です。
室谷室谷
ターミナルで以下のコマンドを実行して、ログアウト→再ログインすれば解決します。
defaults write com.getcursor.Cursor ApplePressAndHoldEnabled -bool false
テキトー教師テキトー教師
これはCursor専用のコマンドです。VS Codeの場合はcom.microsoft.VSCodeになりますが、CursorはElectronのApp IDが違うので注意が必要です。
室谷室谷
さらに、システム設定→キーボードで「キーのリピート速度」を最速に、「リピート入力認識までの時間」を最短にしておくと快適ですね。
テキトー教師テキトー教師
この設定をしないと「jを押しっぱなしにしても1行しか下に動かない」みたいな状態になるので、Vimmerにとっては必須中の必須です。講座でVimモードを教えるときは必ず最初にやってもらってます。
室谷室谷
Windowsの場合はこの問題が起きないので、Mac特有のハマりポイントですね。

VSCodeVimの基本設定(settings.json)

室谷室谷
Vimモードを入れたら次にやるのがsettings.jsonの設定ですね。デフォルトのままでも動きますが、カスタマイズすると全然使いやすさが変わります。
テキトー教師テキトー教師
最低限入れておきたい設定を整理するとこうなります。
{
  "vim.easymotion": true,
  "vim.incsearch": true,
  "vim.useSystemClipboard": true,
  "vim.useCtrlKeys": true,
  "vim.hlsearch": true,
  "vim.leader": "<space>",
  "vim.handleKeys": {
    "<C-a>": false,
    "<C-f>": false
  }
}
室谷室谷
1つずつ解説しますね。vim.easymotionはEasyMotionプラグインの有効化で、画面内の任意の場所に2-3キーでジャンプできる機能です。

これ、使い出すともう戻れないですよ・・・
テキトー教師テキトー教師
vim.useSystemClipboardもかなり重要です。これをtrueにしないと、Vimのヤンク(コピー)がシステムのクリップボードに反映されないんですよね。

「yでコピーしたのにCmd+Vで貼り付けられない」っていうのはこの設定が原因です。
室谷室谷
vim.handleKeysは特定のキーをVimではなくCursor(VS Code)側に渡す設定です。Ctrl+AやCtrl+Fは通常のエディタ操作として使いたい人も多いので、falseにしておくのがおすすめですね。
テキトー教師テキトー教師
vim.leaderをスペースにするのは定番中の定番です。Leaderキーを起点にした独自のショートカットが組めるので、これだけで操作の幅がかなり広がりますよ。

パフォーマンスを最適化する設定

室谷室谷
VSCodeVimは拡張機能の中でも結構リソースを食うんですよね。以下の設定を入れるとパフォーマンスが改善されます。
{
  "extensions.experimental.affinity": {
    "vscodevim.vim": 1
  }
}
テキトー教師テキトー教師
これはVSCodeVimを専用のワーカースレッドで動かす設定です。他の拡張機能と干渉しなくなるので、キー入力のレスポンスが目に見えて良くなりますね。

カスタムキーバインドの設定方法

室谷室谷
じゃあ次はキーバインドのカスタマイズに入りましょう。ここからがVimモードの本領発揮ですね。
テキトー教師テキトー教師
VSCodeVimでは、settings.jsonでモードごとにキーバインドを定義します。insertMode、normalMode、visualMode、operatorPendingModeの4種類があって、それぞれに独自のマッピングが設定可能です。
室谷室谷
定番から紹介すると、まずインサートモードでjjを押したらEscapeに戻る設定ですね。これはVimmerなら誰でも入れてると思います。
{
  "vim.insertModeKeyBindings": [
    {
      "before": ["j", "j"],
      "after": ["<Esc>"]
    }
  ]
}
テキトー教師テキトー教師
ノーマルモードでLeader+wでファイル保存するのも便利ですよ。
{
  "vim.normalModeKeyBindings": [
    {
      "before": ["<leader>", "w"],
      "commands": ["workbench.action.files.save"]
    }
  ]
}
室谷室谷
あとVimモードを使っていると「Ctrl+Nで検索ハイライトを消す」操作が欲しくなるんですよね。これもsettings.jsonで設定します。
{
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": ["<C-n>"],
      "commands": [":nohl"]
    }
  ]
}
テキトー教師テキトー教師
NonRecursiveというのがポイントです。通常のKeyBindingsだとキーの再帰的な置き換えが発生することがあるんですが、NonRecursiveを使えばそれを防げます。

jをkに、kをjに入れ替えるような場合は必ずNonRecursiveを使ってください。
室谷室谷
MYUUUのエンジニアの間で人気なのは、ビジュアルモードで><でインデントを繰り返し操作できる設定ですね。
{
  "vim.visualModeKeyBindings": [
    {
      "before": [">"],
      "commands": ["editor.action.indentLines"]
    },
    {
      "before": ["<"],
      "commands": ["editor.action.outdentLines"]
    }
  ]
}
テキトー教師テキトー教師
これは地味に便利です。標準のVimだとビジュアル選択がインデント操作後に解除されてしまうんですが、この設定なら選択が維持されたまま連続でインデントを調整できます。

Cursor固有のキーバインドとの競合を解決する

室谷室谷
CursorにはAIチャットやインラインエディットなど固有のショートカットがありますよね。これがVimのキーバインドと競合することがあります。
テキトー教師テキトー教師
よくある競合はCtrl+KですねCtrl+Kで検索ハイライトを消す。CursorだとCtrl+Kがインラインエディットに割り当てられていて、Vimのデフォルトとぶつかります。
室谷室谷
vim.handleKeysで競合するキーをCursor側に渡すのが一番シンプルな解決策です。
{
  "vim.handleKeys": {
    "<C-k>": false,
    "<C-a>": false,
    "<C-f>": false
  }
}
テキトー教師テキトー教師
Ctrl+Kをfalseにすることで、CursorのAI機能が優先されます。Vimの操作はほかのキーで代替すればいいので、AI機能を犠牲にするよりこちらの方がいいですね。

Vimのマルチカーソル操作(vim multi cursor)

室谷室谷
マルチカーソル、これはVimモードでもちゃんと使えます。しかもVimのキーバインドと組み合わせるとめちゃくちゃ効率的なんですよね。
テキトー教師テキトー教師
VSCodeVimでは、ノーマルモードでカーソル下の単語を選択するのにgbを使います。gbを連続で押すと同じ単語が次々と選択されていくんです。
室谷室谷
VS Codeの標準操作で言うとCmd+Dと同じ動きですが、Vimモードだとそこからすぐにcで変更したりdで削除したりできるのが強いですね。
テキトー教師テキトー教師
複数行に一括でカーソルを追加したい場合は、ビジュアルブロックモード(Ctrl+V)が使えます。範囲を選択した後にIで一括挿入、Aで一括追加です。
室谷室谷
たとえば10行の変数名の先頭にconst を追加したいとき。Ctrl+Vで10行選択→I→const →Esc。

これだけで全行に適用されます。
テキトー教師テキトー教師
コミュニティのメンバーさんに教えるとみんな驚くんですよ。「え、こんなことできるんですか?」って。

マウスでポチポチ選択するよりはるかに速いですからね。

カーソル下の単語を検索・置換する

室谷室谷
Vimで地味に便利なのが*#ですね。カーソルの下にある単語をそのまま検索してくれる。
テキトー教師テキトー教師
*で前方検索、#で後方検索です。変数名の上で*を押すだけで、同じ変数名が全部ハイライトされます。

リファクタリングの前に「この変数どこで使われてる?」を確認するのに最適ですね。
室谷室谷
さらに:%s/\<old\>/new/gで一括置換もVimコマンドでできますし、CursorのFind and Replaceと使い分けると便利ですね。

Neovim連携でさらに強化する

室谷室谷
VSCodeVimにはNeovim統合という実験的機能があるんですよね。これをオンにすると、ExコマンドがNeovimで実行されるようになります。
テキトー教師テキトー教師
設定はシンプルです。まずNeovimをインストールして、以下を追加します。
{
  "vim.enableNeovim": true,
  "vim.neovimPath": "/opt/homebrew/bin/nvim",
  "vim.neovimUseConfigFile": true
}
室谷室谷
Neovimを有効にすると:gコマンドや:normalコマンドなど、VSCodeVim単体では対応していない高度なExコマンドが使えるようになります。
テキトー教師テキトー教師
たとえば:g/console\.log/dで全てのconsole.logを一括削除するとか。これはデバッグ後のクリーンアップでよく使いますね。
室谷室谷
ただし実験的機能なので、たまに挙動が不安定になることがあります。問題が起きたらvim.enableNeovimをfalseに戻せばいいだけなので、試してみる価値はありますね。
テキトー教師テキトー教師
NeovimのconfigファイルにあるプラグインもCursor内で使いたい場合は、vim.neovimUseConfigFileをtrueにします。ただしこれは全てのプラグインが動く保証はないので、あくまでExコマンドの拡張として考えた方がいいですよ。

CursorのAI機能とVimモードを両立させるコツ

Vim + AI Workflow in Cursor: ノーマルモードからAI編集、Vimオペレータ、繰り返し操作の流れ(公式サイトより)

室谷室谷
ここが一番大事なセクションかもしれないですね。CursorのAI機能とVimモードをどう両立させるか。
テキトー教師テキトー教師
まず前提として、CursorのTab補完(Copilot++)はVimモードでも問題なく動きます。インサートモードで入力していると、AIの提案がインラインで表示されてTabで確定できます。
室谷室谷
CursorのCmd+K(インラインエディット)も、先ほどのvim.handleKeysでCtrl+KをCursor側に渡しておけば使えます。AI機能のショートカットはVimに奪わせないのがポイントですね。
テキトー教師テキトー教師
実用的なワークフローを紹介すると、まずVimのノーマルモードでコードをナビゲーションして、編集したい箇所にジャンプしたらCmd+Kでインラインエディット。AIが生成したコードをVimのオペレータで微調整して、uで即座にundo、.で繰り返し。

この4ステップがサイクルになります。
室谷室谷
特に3番目がVimならではですよね。AIが生成したコードの一部だけ変更したいとき、ciwで単語を変更したり、ct)で括弧の中身を書き換えたり。

マウスで範囲選択→削除→入力するより圧倒的に速いです。
テキトー教師テキトー教師
あとCmd+L(AIチャット)でコードの説明を求めるときも、Vimのビジュアルモードで範囲選択してからCmd+Lを押すと、選択した部分について質問できます。Vimの選択操作はマウスより正確なので、「この関数だけについて聞きたい」みたいなときに便利ですよ。
室谷室谷
うちのチームでは「Vimで高速ナビゲーション、AIで一括生成、Vimで仕上げ」っていうサイクルが定着してきてます。

ObsidianユーザーのVimmerがCursorに移行するとき

室谷室谷
最後にちょっとニッチな話ですが、ObsidianでVimモードを使っていた人がCursorに来るケースについて。
テキトー教師テキトー教師
ObsidianにもVimモードが内蔵されていますよね。Obsidianで慣れたVimキーバインドをCursorでも再現したいという相談、講座でもたまにあります。
室谷室谷
ObsidianのVimモードはCodeMirrorベースで、CursorのVSCodeVimとは実装が違います。基本的なhjkl移動やモード切替は同じですが、カスタムキーバインドの設定方法が異なるんですよね。
テキトー教師テキトー教師
ObsidianだとVim設定は.obsidian.vimrcファイルに書きますが、Cursorではsettings.jsonに書く。書き方が全く違うので、単純にコピーはできません。

ただし、やりたいことの対応関係さえわかれば移行はそこまで大変ではないです。
室谷室谷
ObsidianのVimmerがCursorで特に戸惑うのは、Leader keyの設定方法とEasyMotionの有無ですね。Cursorの方が拡張性は高いので、移行すると「こっちの方が快適」ってなる人が多いです。

よくある質問(FAQ)

CursorでVimモードをオン・オフするショートカットはある?

室谷室谷
コマンドパレット(Cmd+Shift+P)で「toggleVim」と検索すると、Vimモードのオン・オフを切り替えられます。ショートカットキーを割り当てたい場合は、Cursorのキーボードショートカット設定で「toggleVim」にキーを設定してください。

Vimモードにすると動作が重くなる?

テキトー教師テキトー教師
若干のオーバーヘッドはありますが、先ほど紹介したextensions.experimental.affinityの設定を入れればほとんど気にならないレベルです。ファイルが極端に大きい場合(数万行)は多少影響が出ることがありますが、通常の開発では問題ないですよ。

Vimのマクロ(qコマンド)は使える?

室谷室谷
使えます。qaでレジスタaに記録開始、操作してqで記録停止、@aで再生。

VS Code標準のマクロ機能とは別物ですが、Vimのマクロの方が柔軟性が高いですね。繰り返し操作が多いコード修正で威力を発揮します。

surround(囲み操作)はCursorで使える?

テキトー教師テキトー教師
VSCodeVimにはsurround機能が組み込まれています。cs"'でダブルクォートをシングルクォートに変更、ds"でダブルクォートを削除、ysiw"で単語をダブルクォートで囲む。

vim-surroundプラグインと同じ操作感です。

まとめ

室谷室谷
今回はCursorでVimモードを活用する方法を一通り解説しました。設定からキーバインド、AI連携まで結構幅広くカバーしましたね。
テキトー教師テキトー教師
ポイントを整理するとこうなります。
  • VSCodeVim拡張機能をインストールするだけでVimモードが使える
  • Macではキーリピートの設定が必須
  • settings.jsonでキーバインドを自在にカスタマイズ可能
  • CursorのAI機能とはvim.handleKeysで競合を回避
  • マルチカーソルやNeovim連携でさらに効率アップ
室谷室谷
VimとAIの組み合わせは、コーディング速度を次のレベルに引き上げてくれます。Vimmerの方はぜひCursorで試してみてください。

次回はさらに実践的なワークフローについて深掘りしていきますね。
テキトー教師テキトー教師
Vimに慣れていない方も、hjklの移動だけでも覚えると世界が変わりますよ。講座でも最初は「難しそう」って言ってた方が、1週間後には「もう戻れない」って言ってます(笑)

出典

#Cursor#Vim#VSCodeVim
.AI TIMES一覧に戻る