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 opsi atau$
untuk shift?^
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.Jawaban:
Saya tidak berpikir Anda akan memiliki masalah menggunakan format yang lebih lama. Semua contoh yang saya temukan menggunakan notasi NeXT lama. Meskipun saya tidak dapat menjelaskan mengapa format XML tidak berfungsi, ada solusi untuk pintasan keyboard khusus ini yang berarti Anda dapat membiarkan yang sudah ada
DefaultKeyBinding.dict
tidak tersentuh.Ada aplikasi bernama KeyRemap4MacBook yang dapat diunduh gratis dan Anda dapat melihat dari tangkapan layar di bawah ini, Anda dapat memetakan ulang pintasan keyboard ⌘+ ⌫tanpa mengonversi sisa
DefaultKeyBinding.dict
file Anda dan metode ini tidak terbatas pada aplikasi Kakao.sumber
\U007f
tidak dapat digunakan pada daftar properti XML. Anda harus menggantinya dengan
atauDEL
karakter literal .Anda dapat mengonversi plist gaya lama ke XML dengan
plutil
:Dan dari XML ke gaya lama dengan
pl
:DefaultKeyBinding.dict saya saat ini 151 baris, dan saya belum mengalami masalah menyimpannya sebagai daftar properti gaya lama. Yang diposting oleh Brett Terpstra dan Jacob Rus juga dalam format gaya lama.
sumber