DefaultKeyBinding.dict
~/Library/KeyBindings/DefaultKeyBinding.dict
ไฟล์ช่วยให้คุณสามารถกำหนดปุ่มลัดของคุณเองใน Mac OS X ได้มันอาจจะเป็นหนึ่งในสองรูปแบบ: แบบเก่ารูปแบบถัดไป ( ตัวอย่าง ) หรือสไตล์ทันสมัยรูปแบบ XML plist ( ตัวอย่าง )
การปฏิเสธ⌘+⌫
ฉันต้องการเชื่อมคำสั่ง backspace ( ⌘+ ⌫) 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 แบบเก่าเท่านั้นและไม่ได้อยู่ในรูปแบบ Plist XML คำถามของฉันคือ:
- นี่ถูกต้องหรือไวยากรณ์ควรเปลี่ยนอย่างใดเมื่อฉันเปลี่ยนเป็นรูปแบบ XML?
- ฉันจะเสียใจที่ย้ายไฟล์ส่วนที่เหลือของฉัน
DefaultKeyBinding.dict
ไปยังไวยากรณ์เก่าหรือไม่ มันคงไม่เป็นการดีที่จะทำเช่นนั้น - เป็นเพียงหนึ่งหรือสองโหลเท่านั้น - แต่ฉันไม่แน่ใจว่ารูปแบบเก่านั้นถูกคัดค้านหรือไม่ได้รับคำแนะนำด้วยเหตุผลอื่น
แก้ไข: 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 มันไม่สมเหตุสมผล แต่ฉันไม่สามารถหาอะไรเพิ่มเติมเกี่ยวกับมัน
~
สำหรับตัวเลือกหรือ$
กะ?