DefaultKeyBinding.dict
この~/Library/KeyBindings/DefaultKeyBinding.dict
ファイルを使用すると、Mac OS Xで独自のキーバインディングを定義できます。これは、旧式のNeXT形式(例)または現代式のXML plist形式(例)の2つの形式のいずれかになります。
再バインド⌘+⌫
コマンドバックスペース(⌘+ ⌫)をに再バインドしたかったのでdeleteWordBackward:
、このAskDifferentスレッドでいくつかの助けを得ました。これを自分のDefaultKeyBinding.dict
ファイルとして使用することが提案されました:
/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}
このアドバイスは(ありがとう、みんな!)うまくいきましたが、私は既にDefaultKeybinding.dict
XML形式で作業しているので、そのように機能させたいと思っていました。最初に、次のテキストを既存のファイルの下部に追加しました。
<key>@\U007F</key>
<string>deleteWordBackward:</string>
また、⌘+ ⌫エントリだけを含むまったく新しいXML形式のファイルを作成してみました 。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>@\U007F</key>
<string>deleteWordBackward:</string>
</dict>
</plist>
しかし、どちらのファイルも機能しませんでした。したがって、明らかな状況は、古いスタイルのNeXT形式でのみ⌘+ バインドでき⌫、XML plist形式では再バインドできないことです。私の質問は:
- これは正確ですか、それともXML形式に切り替えたときに構文が何らかの形で変化するのでしょうか?
DefaultKeyBinding.dict
ファイルの残りの部分を古い構文に移動したことを後悔しますか?それを行うのはそれほど多くの作業ではないでしょう-それはたったの1ダースまたは2ダースのエントリです-しかし、他の理由で古いスタイルが非推奨であるか不適切なアドバイスであるかどうかはわかりません。
編集:元のDefaultKeyBinding.dict
誰かが私の元のファイルに関する情報をコメントで要求したので、ここにすべてを含めたほうがよいと思います。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key></key>
<string>complete:</string>
<key>^ </key>
<string>setMark:</string>
<key>^a</key>
<string>moveToBeginningOfLine:</string>
<key>^e</key>
<string>moveToEndOfLine:</string>
<key>^j</key>
<string>setMark:</string>
<key>^v</key>
<string>pageDown:</string>
<key>^w</key>
<string>deleteToMark:</string>
<key>^x</key>
<dict>
<key>^m</key>
<string>selectToMark:</string>
<key>^x</key>
<string>swapWithMark:</string>
</dict>
<key>~</key>
<string>deleteWordBackward:</string>
<key>~<</key>
<string>moveToBeginningOfDocument:</string>
<key>~></key>
<string>moveToEndOfDocument:</string>
<key>~^h</key>
<string>deleteWordBackward:</string>
<key>~b</key>
<string>moveWordBackward:</string>
<key>~d</key>
<string>deleteWordForward:</string>
<key>~f</key>
<string>moveWordForward:</string>
<key>~n</key>
<string>scrollLineDown:</string>
<key>~p</key>
<string>scrollLineUp:</string>
<key>~v</key>
<string>pageUp:</string>
<key>~</key>
<string>deleteWordBackward:</string>
</dict>
</plist>
^
制御のため?
~
および^
で作業中のエントリがありますが、$
またははありません@
。(注:役に立つことがわかった場合に備えて、元のDefaultKeyBindings.dictファイルもOPに追加しました。)
@
XML形式のplistファイルではコマンドキーを表すことができない場合があります。それはあまり意味がありませんが、それ以上何も見つけることができません。
~
オプションまたは$
シフトに使用していますか?