DefaultKeyBinding.dict
该~/Library/KeyBindings/DefaultKeyBinding.dict
文件使您可以在Mac OS X中定义自己的键绑定。它可以是两种格式之一:旧式NeXT格式(示例)或新式XML plist格式(示例)。
重新绑定⌘+⌫
我想将命令退格键(⌘+ ⌫)重新绑定到deleteWordBackward:
,并且在Ask Askfferent线程中得到了一些帮助。建议将其用作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
文件的其余部分移到旧语法吗?这样做并不需要太多工作-只能输入一两个条目-但我不确定是否由于其他原因而弃用了旧样式或不建议使用旧样式。
编辑:原始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中,以防万一有用。)
@
plist文件的XML样式不接受表示命令键的情况。这没有多大意义,但我找不到更多信息。
~
用于期权还是$
用于班次?