Pages

Tuesday, 21 April 2020

MacOS适应记

快捷键

要能高效地使用操作系统,熟练掌握相应的快捷键是必经的过程。由于Windows和MacOS的操作逻辑有一定的区别,适应操作逻辑就成了熟练掌握的核心,详细的MacOS快捷键列表网上到处都是,这里就不再赘述,主要罗列几个我认为特别常用又与Windows相差较大的快捷键:
这是在Finder里对文件/文件夹操作的快捷键
  • [Command ⌘] + [C] 复制
  • [Command ⌘] + [V] 粘贴
  • [Command ⌘] + [↓] 运行(打开)选中程序(文档/文件夹)
  • [Command ⌘] + [↑] 返回上级文件夹
  • [Command ⌘] + Tab 切换应用程序
  • [Command ⌘] + ` 切换窗口 (在当前应用程序内)
  • [Command ⌘] + Q 退出应用
  • [Command ⌘] + W 关闭窗口
顺便提一下,Finder直接拖动文件代表移动,拖拽文件时按住[Command ⌘]代表复制。
一个应用程序可以打开多个窗口(每一个打开的窗口对应了一个打开的文档).

盒盖掉电问题

MacBook Pro Retina 2017 (10.13.2)在合盖睡眠时,掉电的问题依然存在且有愈发严重的。查阅完各路解决方案后发现,大部分情况下,导致盒盖掉电的主要原因还是被网络不断地被唤醒,解决起来效果明显的思路有两个:
通过sleepwatcher之类的软件,实现开合盖时自动开启断开wifi,实现阻断唤醒的思路。这是是一个被动的解决方案,虽然有效但是给人一种怪怪的感觉。
通过修改TCPKeepAliveDuringSleep、tcpkeepalive 之类的参数,使得盒盖之后网络不再活跃,达到减少唤醒的目的。这里值得一提的是以下这个广为流传的修改方案其实已经被原作者确认在新系统中无效
    1. 重启 Macbook,在启动的时候按住 command + R,然后系统会尽入 recovery 模式。
    2. 选择语言,点下一步,然后在菜单栏选择打开 terminal。 
    3. 输入 csrutil disable 禁掉 SIP,然后正常重启 macbook。
    4. 打开 terminal,输入 ioreg -l | grep board-id 查看你的 board-id
    5. 在这个目录 /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources 下面找到你的 board-id 对应的 .plist 文件 
    6. 用管理员账户编辑上一步中的 plist 文件,比如 sudo vim Mac-2BD2C31983FE1634.plist 
    7. 把 TCPKeepAliveDuringSleep 修改为 false, 然后保存 
    TCPKeepAliveDuringSleep 
     
    NotificationWake 
     
    DNDWhileDisplaySleeps 
     
    8. 重启 mac,按照第 1,2 步进入 recovery 模式,开启 SIP,csrutil enable。 
    9. 正常重启 mac,就可以了。可以用这个命令 ioreg -l | grep IOPlatformFeatureDefaults 来查看修改后的状态。
经过多次测试,在新系统(10.13.2)中,比较有效的方案是直接修改tcpkeepalive。
    $ pmset -g custom #默认是 1 ,打开状态
    $ sudo pmset -b tcpkeepalive 0 #设置为关闭
其中Battery Power(电池)和 AC Power(电源)的信息是分开的,pmset -b是只对Battery Power(电池)模式的参数进行调整。
此外,与休眠耗电有关的参数及其默认值还有:
      Standbydelay 28800
      Autopowerofdelay 28800
Standby 是指盒盖后在RAM中继续运行系统休眠的时间(会消耗一定的电力)
Autopoweroff 指的是將系統存入SSD中时间(相当于彻底关闭系统)
其中Standbydelay和Autopoweroffdelay的单位都是秒,默认的28800秒 表示 8小時
所以彻底解决盒盖好点问题可以根据你的实际使用习惯,调整参数。
    sudo pmset -b autopoweroffdelay 14400
    sudo pmset -b standbydelay 14400
    sudo pmset -b tcpkeepalive 0

软件设置

I. Brew

大名鼎鼎的Brew,不必多说。使用过程中坑出现问题往往是由众所周知不可描述的网络原因导致的,为此可以通过设置~/.curlrc添加socks5="127.0.0.1:1080"让它走代理,或者替换源为国内源。

II. IINA

macOS上最好用的影音播放器,强烈推荐IINA,通过Brew安装很方便。现代播放器,谁用谁知道。
    brew cask install iina

III. 字体问题

由于要处理windows下的word文档,MacOS和Windows之间的字体名字不统一导致出现字体丢失的问题。这个项目能够解决相应的问题。

IV. Git换行符问题

因为之前主要是在Win下码代码,所以没有遇到过git的换行符问题。换到MacOS之后很自然地遇到了Git自动转换换行符问题,具体的原因网上很简单能查到,主要原因是不同的操作系统里文本文件所使用的换行符不一致,详细介绍可以看这篇文章。解决起来也好办,“关闭自动转换换行符”功能和“开启换行符检查”功能。
    git config --global core.autocrlf false
    
    git config --global core.safecrlf true

V. 升级失败的处理办法

开箱之后,通过APP store进行的两次升级均以挂掉告终,具体表现是正常更新重启后出现文件丢失提示,无论重启多少次问题依旧,真是神坑,难怪在V2上被人调侃为BugOS。
目前我的解决办法是在开机时通过长按下列快捷键,进入recovery读取备份(或重装系统):
[Command ⌘] + R 
重新安装您在 Mac 上安装过的最新 macOS,但不会升级到更高的版本。

[Option ⌥] + [Command ⌘]-R
升级到与您的 Mac 兼容的最新 macOS。

VI. 升级后iCloud账号无法登陆的问题

升级之后,发现Apple id和icloud账号被退出,排除网络问题后,输入正确的用户名和密码后提示“发生未知错误。”或者“An unknown error occurred”。
经排查是 Keychains 出现了问题,解决方法如下:
在 Finder 中按住 Shift+Command+G 键,前往 ~/Library/Keychains/ 文件夹,删除这个文件夹下一个形如3C0C5ADA-4ED7-57CB-99A3-XXXXXC7D8B41的文件夹(你也可以移动到其他的位置去作备份),然后重启系统。所有的账号系统将会退出,这时再登陆相应的账号就可以了。