DefaultKeyBinding.dict
The ~/Library/KeyBindings/DefaultKeyBinding.dict
file yang memungkinkan Anda menentukan binding kunci Anda sendiri di Mac OS X. Hal ini dapat di salah satu dari dua format: gaya lama NeXT Format ( contoh ) atau bergaya modern format XML plist ( misalnya ).
Rebinding ⌘+⌫
Saya ingin mengubah perintah-backspace ( ⌘+ ⌫) deleteWordBackward:
, dan saya mendapat bantuan di utas AskDifferent ini . Disarankan agar saya menggunakan ini sebagai DefaultKeyBinding.dict
file saya :
/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}
Nasihat ini berhasil (terima kasih, teman-teman!), Tapi saya sudah bekerja DefaultKeybinding.dict
dalam format XML, jadi saya ingin mencoba membuatnya bekerja seperti itu. Saya pertama kali menambahkan teks ini di dekat bagian bawah file saya yang ada:
<key>@\U007F</key>
<string>deleteWordBackward:</string>
Dan saya juga mencoba membuat file berformat XML baru hanya dengan ⌘+ ⌫entri:
<?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>
Tapi tidak ada file yang berfungsi. Situasi yang jelas, kemudian, adalah bahwa Anda dapat memutar ulang ⌘+ ⌫hanya dalam format NeXT gaya lama, dan tidak dalam format plist XML. Pertanyaan saya adalah:
- Apakah ini akurat, atau haruskah sintaks berubah entah bagaimana ketika saya beralih ke format XML?
- Apakah saya akan menyesal memindahkan sisa
DefaultKeyBinding.dict
file saya ke sintaks lama? Tidak akan banyak pekerjaan yang harus dilakukan - itu hanya satu atau dua lusin entri - tapi saya tidak yakin apakah gaya lama sudah usang atau keliru karena beberapa alasan lain.
Edit: Original DefaultKeyBinding.dict
Seseorang meminta informasi tentang file asli saya di komentar, jadi saya pikir saya mungkin juga memasukkan semuanya di sini.
<?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>
^
untuk kontrol?
~
dan ^
, tetapi tidak ada dengan $
atau @
. (Catatan: Saya melanjutkan dan menambahkan file DefaultKeyBindings.dict asli saya ke OP juga dalam kasus yang ternyata berguna.)
@
tidak diterima dalam gaya XML file plist. Itu tidak masuk akal, tetapi saya tidak dapat menemukan lebih banyak tentang itu.
~
untuk opsi atau$
untuk shift?