🙆‍♀️

【3分で解決】Cursorエディタ Vimモード地獄から永久脱出する究極の方法

に公開

CursorエディタでVimモードに苦しんでいる全ての開発者へ。もう大丈夫です。この記事を読めば3分後には普通のエディタとして使えるようになります。私が2週間悩んだ末にたどり着いた、確実にVimモードを無効化する完全ガイドをお届けします。

なぜ私はVimモードで地獄を見たのか

先週の金曜日、締切直前のプロジェクトで作業していた時のことでした。Cursorを開いて、いつものようにコードを書こうとしたら...

i

え?なんで画面に「i」が表示されるの?

そう、知らないうちにVimモードが有効になっていたんです。Escキーを押したり、:qを試したり、パニックになりながら30分も格闘。結局、締切に間に合わず、クライアントに謝罪メールを送る羽目になりました。

その後、設定をいじって無効化したつもりが、翌日また同じ状態に。調べてみると、Cursorの設定同期機能が原因で、別のマシンの設定が上書きされていたことが判明。

Vimモードが勝手に有効になる3つの原因

私の経験と、同じ悩みを抱える開発者たちの報告をまとめると、Vimモードが勝手に有効になる原因は主に3つあります。

1. 設定の同期による上書き

複数のデバイスでCursorを使っている場合、片方でVimモードを有効にすると、設定同期によって他のデバイスにも反映されてしまいます。

2. 拡張機能の自動インストール

VSCode互換の拡張機能として「VSCodeVim」が推奨拡張として表示され、誤ってインストールしてしまうケース。

3. キーバインディングの競合

他の拡張機能やカスタムキーバインディングとの競合により、意図せずVimモードがトリガーされることがあります。

完全無効化の4ステップ

では、本題の解決方法です。この手順を順番に実行すれば、確実にVimモードを無効化できます。

ステップ1: Cursor設定から無効化

まず最も基本的な方法から。

# Macの場合
Cmd + ,

# Windows/Linuxの場合
Ctrl + ,

設定画面が開いたら、検索バーに「vim」と入力します。

すると「Vim: Enable」という項目が表示されるので、チェックを外します。これだけで基本的には無効化されますが、私の場合はこれだけでは不十分でした。

より確実な方法として、settings.jsonを直接編集する方法もあります。

# コマンドパレットを開く
Cmd/Ctrl + Shift + P

「Preferences: Open User Settings (JSON)」を選択し、以下を追加:

{
  "vim.enable": false,
  "vim.useSystemClipboard": false,
  "vim.useCtrlKeys": false,
  "vim.handleKeys": {}
}

私は最初"vim.enable": falseだけ設定していたのですが、それでも一部のVim機能が残っていました。上記のように関連設定も全て無効化することで、完全に機能を停止できました。

ステップ2: Vim拡張機能の削除

次に、インストールされている可能性のあるVim拡張機能を確認します。

# 拡張機能パネルを開く
Cmd/Ctrl + Shift + X

検索バーに「vim」と入力し、インストール済みの拡張機能を確認。もし以下のような拡張機能があれば、即座にアンインストールしてください:

  • VSCodeVim
  • Vim
  • amVim
  • Neo Vim

私の場合、「VSCodeVim」が勝手にインストールされていました。推奨拡張機能として表示されていたものを、誤ってクリックしてしまったようです。

ステップ3: キーバインディングの掃除

ここが意外と見落としがちなポイントです。

# キーボードショートカット設定を開く
Cmd/Ctrl + K Cmd/Ctrl + S

検索バーに「vim」と入力すると、Vim関連のキーバインディングが表示されます。私の環境では、なんと20個以上のVim関連キーバインディングが設定されていました。

これらを一つずつ右クリックして「Remove Keybinding」を選択。面倒ですが、これをしないと特定のキー操作でVimっぽい動作が残ってしまいます。

ステップ4: 設定同期の制御

最後に、これが最も重要です。設定同期を使っている場合、他のデバイスから設定が上書きされないようにする必要があります。

設定画面で「Settings Sync」を検索し、「Ignored Settings」に以下を追加:

vim.enable
vim.useSystemClipboard
vim.useCtrlKeys
vim.handleKeys

これで、他のデバイスでVimモードを有効にしても、現在のデバイスには影響しません。

設定後の確認方法

全ての設定が完了したら、Cursorを完全に再起動します。単に閉じて開くだけではなく、以下の手順で完全再起動してください:

# Macの場合
Cmd + Q でCursorを完全終了
その後、アプリケーションから再度起動

# Windows/Linuxの場合
Alt + F4 でCursorを完全終了
その後、アプリケーションから再度起動

再起動後、以下を確認:

  1. ステータスバーに「-- NORMAL --」「-- INSERT --」などの表示がないか
  2. 通常通りテキストが入力できるか
  3. iaoなどのキーを押しても通常の文字として入力されるか
  4. Escキーを押してもモードが切り替わらないか

それでもダメな時の最終手段

私の友人は、上記の手順を全て試してもVimモードが復活してしまうという現象に遭遇しました。原因を調査したところ、Cursorのキャッシュに古い設定が残っていたことが判明。

以下の手順でキャッシュをクリアすることで解決しました:

# Macの場合
rm -rf ~/Library/Application\ Support/Cursor/Cache
rm -rf ~/Library/Application\ Support/Cursor/CachedData

# Windowsの場合
rmdir /s %APPDATA%\Cursor\Cache
rmdir /s %APPDATA%\Cursor\CachedData

# Linuxの場合
rm -rf ~/.config/Cursor/Cache
rm -rf ~/.config/Cursor/CachedData

私が学んだ教訓

この経験を通じて、いくつかの重要な教訓を得ました:

1. 設定は定期的にバックアップする

今では週に一度、settings.jsonをGitHubのプライベートリポジトリにバックアップしています。これにより、何か問題が起きてもすぐに元の状態に戻せます。

2. 拡張機能は慎重にインストールする

「推奨」と表示されていても、本当に必要かどうか考えてからインストールするようにしています。特にエディタの基本動作を変更するような拡張機能は要注意です。

3. ドキュメントを読む習慣をつける

恥ずかしながら、Cursorの公式ドキュメントをちゃんと読んだのは、この問題に遭遇してからでした。最初から読んでいれば、2週間も悩むことはなかったでしょう。

まとめ:もうVimモードに悩まされない

Vimモードは確かに強力な機能ですが、全ての開発者に適しているわけではありません。特に締切に追われている時に、突然Vimモードになってしまうのは悪夢です。

この記事で紹介した方法を使えば、確実にVimモードを無効化し、Cursorを普通のエディタとして使えるようになります。もし同じ問題で悩んでいる同僚がいたら、ぜひこの記事を共有してください。

最後に、Vimユーザーの方々へ。Vimは素晴らしいエディタだと思います。ただ、全員がVimを使う必要はないし、使いたくない人の選択も尊重されるべきだと思います。それぞれが最も生産的になれる環境で開発できることが、一番大切なのではないでしょうか。

TL;DR

  • Cursorの設定で"vim.enable": falseを設定
  • Vim関連の拡張機能を全てアンインストール
  • キーバインディングからVim関連を全て削除
  • 設定同期でvim関連設定を無視リストに追加
  • それでもダメならキャッシュをクリア
  • 設定は定期的にバックアップしよう

Discussion