Starting with OS X Lion, holding down a key will bring up a menu of alternate characters rather than repeating the key. (This is a feature). There are many tips on how to re-enable key-repeat globally. But you can also control the behavior per-application (thanks, Egor Ushakov). This is handy for e.g. IntelliJ or RubyMine, or any other app that provides Vim-style keyboard bindings. The magic commands are:
% defaults write com.jetbrains.intellij ApplePressAndHoldEnabled -bool false % defaults write com.jetbrains.rubymine ApplePressAndHoldEnabled -bool false
But how do you figure out what the magic identifier for your application is? Simple:
defaults domains will list them all:
defaults domains | gsed -e 's/, /\n/g' | grep jetbrains com.jetbrains.intellij com.jetbrains.intellij.ce com.jetbrains.rubymine jetbrains.communicator.core
Note that in order to munge the commas into newlines for grep, gsed was required because OS X default sed cannot (easily) insert newlines.