MacOS下Home和End解决方案

在Windows或者Linux下

  • Home是回到行首部
  • end是到行末尾

在MacOS下,各种按键被各种魔改,各个版本之间都不一致,所以才有了这篇文章

1 在大多数应用中,如何让Home和End表现正常

cd ~/Library
mkdir KeyBindings
cd KeyBindings
nano DefaultKeyBinding.dict

文件中写如下内容

{
    /* Remap Home / End keys */
    /* Home Button*/
    "\UF729" = "moveToBeginningOfLine:"; 
    /* End Button */
    "\UF72B" = "moveToEndOfLine:"; 
    /* Shift + Home Button */
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; 
    /* Shift + End Button */
    "$\UF72B" = "moveToEndOfLineAndModifySelection:"; 
    /* Ctrl + Home Button */
    "^\UF729" = "moveToBeginningOfDocument:"; 
    /* Ctrl + End Button */
    "^\UF72B" = "moveToEndOfDocument:"; 
     /* Shift + Ctrl + Home Button */
    "$^\UF729" = "moveToBeginningOfDocumentAndModifySelection:";
    /* Shift + Ctrl + End Button*/
    "$^\UF72B" = "moveToEndOfDocumentAndModifySelection:"; 
}

如果你只需要home和End,其实前两个就够了

2 在Terminal中,如何使用Home和End

看到这你应该已经明白了,Terminal并不属于“大多数”应用,所以上面的方法不奏效。

理论上,可以通过各种魔改key mapping来使用Home和End,但是我不建议你这么搞。

因为即使你本地可以搞定,也随着MacOS的升级而不断变换了正确的映射,ssh登陆到远程服务器后,依然又可能会失效。

所以就老老实实的记住下面的命令吧:

Ctrl + A 行首(Ahead)
Ctrl + E 行尾(End)

3 vim中,如何使用Home和End

vim和terminal又不一样,无力吐槽了吧

在vim中,请记住下面命令

^ 回到行首
$ 回到行尾

最后再吐槽下MacOS,真的太太太太太太太难用了。

Leave a Reply

Your email address will not be published.