强制Magic Keyboard Home和Ends键在macOS High Sierra中的行为类似于Windows?

Nic*_*der 5 keyboard macos xcode key-bindings macos-sierra

我是一名全职.NET开发人员,因此我在Windows 10中工作。但是,我绝对喜欢macOS,并在家中使用它。我经常使用Home和End键,它们使我的工作效率大大提高。有什么方法可以强制macOS上的Home和End键像Windows 10一样运行?


我想要的是

主页:将光标发送到当前行的开头

结束:将光标发送到当前行的末尾

Shift-Home:将光标发送到具有选择的当前行的开头

Shift-End:将光标发送到具有选择的当前行的末尾

Command-Home:将光标发送到当前文档的开头

Command-End:将光标发送到当前文档的末尾

Shift-Command-Home:将光标发送到带有选择的当前文档的开头

Shift-Command-End:将光标发送到带有选择的当前文档的末尾


我尝试过的

一个简单的Google搜索为我提供了添加自定义NSResponder条目~/Library/KeyBindings/DefaultKeyBinding.dict并重新启动的可能解决方案。不幸的是,这似乎没有用。我已经在Xcode,Sublime Text和Safari中对其进行了测试。这些键似乎以正常的macOS方式运行。

{
    "\UF729"  = "moveToBeginningOfLine:";
    "\UF72B"  = "moveToEndOfLine:";                        
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用BetterTouchTool来设置键盘快捷键,将Home映射为Command-Left,将End映射为Command-Right。这适用于Home和End,但不适用于选择文本或导航文档


我在用什么

  • 2012年中非Retina MacBook Pro
  • macOS High Sierra公开Beta 5
  • 苹果魔术键盘
  • Xcode,Sublime Text,Safari

奖励积分

Command-Left:将光标发送到单词的开头

Command-Right:将光标发送到单词结尾

Shift-Command-Left:将光标发送到选择的单词开头

Shift-Command-Right:将光标发送到选择的单词结尾

Nic*_*der 5

我不太确定我改变了什么,但它突然开始起作用。这是我的DefaultKeyBinding.dict这是原始文件的pastebin


{
"\UF729" = "moveToBeginningOfLine:";                            /* Home */
"\UF72B" = "moveToEndOfLine:";                                  /* End */
"$\UF729" = "moveToBeginningOfLineAndModifySelection:";         /* Shift + Home */
"$\UF72B" = "moveToEndOfLineAndModifySelection:";               /* Shift + End */
"@\UF729" = "moveToBeginningOfDocument:";                       /* Cmd + Home */
"@\UF72B" = "moveToEndOfDocument:";                             /* Cmd + End */
"@$\UF729" = "moveToBeginningOfDocumentAndModifySelection:";    /* Shift + Cmd + Home */
"@$\UF72B" = "moveToEndOfDocumentAndModifySelection:";          /* Shift + Cmd + End */
"@\Uf702" = "moveWordLeft:";                                    /* Cmd + Left */
"@\Uf703" = "moveWordRight:";                                   /* Cmd + Right */
"@$\Uf702" = "moveWordLeftAndModifySelection:";                 /* Shift + Cmd + Left */
"@$\Uf703" = "moveWordRightAndModifySelection:";                /* Shift + Cmd + Right */
}
Run Code Online (Sandbox Code Playgroud)