今日はTextmateでハイフンとアンダーラインを交換する方法です。今日の設定はCoccoaを使っているアプリに有効みたいだけど、TextMate、Emacsあたり意外でどのアプリに有効になるかは今のとこわからないです。
$ vim ~/Library/KeyBindings/DefaultKeyBinding.dict
{
  /* "変更元" = ("命令", "値");  */
  "-" = ("insertText:", "_");
  "$_" = ("insertText:", "-");
  ";" = ("insertText:", ":");
  "$:" = ("insertText:", ";");
}
ちなみに英語ではハイフンはdash、アンダーラインはunderscoreと一般的に呼ばれています。
参考:
http://blog.macromates.com/2005/key-bindings-for-switchers/
http://xahlee.org/emacs/osx_keybinding_key_syntax.html
どういうコマンドがあるかはここを参考にしてください。