0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeのvimモードでキー長押しが効かない問題を解決する方法

Last updated at Posted at 2025-07-25

VSCodeの場合

ターミナルで以下の2つの設定をするだけで解決します。

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false

Cursorの場合

以下のコマンドを利用してCursorのドメインを調べてください。

osascript -e 'id of app "Cursor.app"'

ドメインを確認後以下のコマンドを実行すると解決します。

defaults write {上記で確認したドメイン} ApplePressAndHoldEnabled -bool false

原因と解決策の理解

この問題の原因はmacに備わっている「Press and Hold」の機能が関係しています。
「Press and Hold」とはキーを長押しすると特殊文字を入力できるメニューが表示される機能です。
たとえば「a」キーを長押しすると、「à」「á」「â」といった文字を選択できる小さなメニューが出てきます。

しかし、Vimを使う人にとって、この機能は邪魔になってしまいます。Vimでは「h」「j」「k」「l」キーを使ってカーソルを移動させますが、これらのキーを長押しして素早く移動したいとき、Press and Hold機能が働いてしまうと、期待するような連続移動ができません。

これの問題を解決するのが先ほどのコマンドです。

defaults writeというのは、Macのアプリケーション設定を変更するためのコマンドです。通常、アプリの設定は設定画面で変更しますが、このコマンドを使えば、より細かい設定まで直接変更できます。

com.microsoft.VSCodecom.microsoft.VSCodeInsidersは、それぞれ通常版のVSCodeと開発者向けのInsiders版VSCodeを指しています。この識別子を使うことで、そのアプリケーションだけに適用される設定を変更できます。

ApplePressAndHoldEnabled -bool falseの部分が実際の設定内容です。これは「ApplePressAndHoldEnabled(Press and Hold機能を有効にする)」という設定を「false(無効)」に変更するという意味です。

つまり、このコマンド全体の意味は「VSCodeアプリケーションに対してのみ、Press and Hold機能を無効にしてください」ということになります。

このコマンドは、VSCode以外のアプリケーションには影響を与えないというメリットがあります。
VSCode内でのみ、キーの長押しが期待通りのキーリピートとして動作するようになります。

おすすめ書籍

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?