mac 初上手的疑问与困惑
本文最后更新于:2024年11月11日 上午
场景
换了 m2 macbook,作为一个 windows 长期使用者,截止目前为止遇到了很多问题和疑惑,有些解决了,有些目前仍未找到解决方法,在此记录和分享。
另外还写过两篇关于 Windows 的
系统
如何添加字体
之前日常的字体为更纱黑体,它并不出色,但主要优势是以统一的风格支持简繁日英四种语言。
基本步骤和 windows 类似,下载 ttc 点击打开,等待验证通过即可。不过 mac 上这个过程会很慢很慢很慢以至于让我以为出现了 bug。
如何外接显示屏关闭盖子不熄屏
虽然查了一堆答案,但实际上只要外接电源并将外部显示器设置为主显示器即可。
仍然有 bug,有时候使用外接键盘鼠标一直无法唤醒。
如何调整鼠标反向过来
最开始遇到的非常不习惯的地方,不过可以使用工具 SCROLL REVERSER 将之设置为反向。
mac 查看全局快捷键占用
没有找到真正可用的,后续通过 google + 提问查找 mac 的快捷键设置。
如何使用其他输入法
直接使用系统的输入法下载即可,然后可以使用 ctrl+space
切换输入法。
由于与 vscode 提示建议的快捷键冲突,修改为
ctrl+shift+space
。
mac 上不使用 fn 就使用功能键
在系统设置 将 F1、F2 等键用作标准功能键 启用,ref: https://support.apple.com/zh-cn/HT204436
实测 F5 刷新浏览器页面的快捷键并未生效。。。
mac 不再提示权限请求
每次打开国产软件都会请求权限,但禁止后下次打开仍然会提醒,有办法像 android/浏览器 一样永久禁止指定软件的权限请求么?
无法关闭,因为这是应用程序创建的窗口。
如何在应用关闭主窗口时从 dock 栏隐藏
这取决于应用是否支持该行为,例如 ssr 支持关闭窗口后最小化到右上角,但 proxifier 就不支持,必须在 dock 栏占一个位置。
如何列出所有窗口切换
mac 的 command+tab 只能切换应用,但同一个应用中的多个窗口则无法切换。
使用同一应用切换多个窗口时,需要使用 command+~ 快捷键。
列出所有窗口可以使用 ctrl+top 快捷键,但无法使用快捷键切换,必须右手从鼠标上移动到键盘再移动回鼠标太反直觉了,而且大小不一很奇怪。
使用 alt-tab 可以恢复类似于 windows 的行为。
禁用 chrome 里的右键菜单
默认情况下 chrome 会显示几个 mac 的集成右键菜单项,它们大部分时候并不实用,需要禁用。
嗯,看起来这个问题似乎是不可解决的,这真的很糟糕。ref: https://superuser.com/questions/1012292/
修改在输入中光标移动为 windows 的快捷键
mac 上的移动光标快捷键可能很好,但显然与 windows 上有相当大的差异。
在 windows 中一般使用以下键来移动光标:
- home/end 跳转到行首/行尾
- ctrl+home/end 跳转到文本首/文本尾
- ctrl+left/right 跳转到单词首/单词尾
以上按键都可以与 shift 配合使用。
可以通过 Karabiner-Elements 配置全局键盘映射可以缓解这个问题。
如何从第三方下载 dmg 文件
暂未处理
如何杀死特定进程
有时某个后台程序卡死需要重启,但活动监视器似乎无法右键杀死一个进程。
使用 linux 命令 ps + kill -9
在 活动监视器 中先选中想要杀死的进程,然后点击导航栏的 ⊗
禁用 mac 上 cmd+shift+a 触发 No manual entry for setting;type=a
在 jetbrains 的 ide 中,cmd+shift+a 会触发 No manual entry for setting;type=a
,又是 mac 自作聪明的快捷键。
可以通过以下方式解决:
- 打开 系统设置 => 键盘 => 键盘快捷键 => 服务
- 禁用 文本 => 在 “终端” 中搜索 man 界面索引
自动关闭右上角的通知弹窗
有时候系统会弹出一些通知,比如更新软件,但是这些通知会一直显示在右上角,如果不主动关闭就会一直存在,非常烦人,更期望像 windows 一样自动隐藏并且需要可以在通知列表查看。
Automator 之类的似乎只能设定快捷键关闭,并不能在自动在几秒钟后关闭系统通知。
设置 gmail 网页版为系统默认邮件客户端
mac 自带的邮件客户端,可能很好用,但已经习惯 gmail,所以希望能够设置 gmail 为系统默认邮件客户端。这个步骤比 windows 上麻烦的多,参考教程:https://zhuanlan.zhihu.com/p/530508168
如何在通过 usb 向手机差异同步文件
实际需求是需要同步 OneDrive 与电子书阅读器的目录,但神奇的是 mac 连接 android 手机后,无法通过 finder 直接向手机传输文件,必须通过 google 的 Android File Transfer 的程序才能实现,但它并不能做差异同步。
算是明白为什么有人不喜欢 mac,说它太封闭的原因了,它对自家之外的东西支持太烂了。
禁用鼠标移到右下角显示备忘录
- 打开 系统设置 => 搜索“触发角” => 触发角快捷键
- 删除右下角的备忘录触发
解决状态栏空间不够隐藏部分应用图标的问题
例如,有时会发现 mac 上同时打开的应用太多,一些应用的图标在右上角的状态栏已经看不到了。
这种情况下,可以使用第三方工具来实现特定图标隐藏的需求,但更简单的方式是删除不需要的系统图标,例如声音、蓝牙等,因为它们都可以在控制中心找到,如果使用频率很高,也可以从控制中心再拖回来。
另外,可以修改状态栏应用图标之间的间距,这样状态栏就能容纳更多的图标了,例如
1 |
|
效果
finder
mac 中删除桌面上的图标
使用 command+退格键 即可删除选中的图标。
快速切换窗口
使用 ctrl+left/right 可以切换邻近的窗口,这对于开发时只需要使用常用的几个窗口非常有用快速。(恢复旧的类似于多窗口的行为,放弃类似于移动端一个应用覆盖屏幕的做法)
显示隐藏文件
command+shift+.
可以临时切换显示隐藏文件。
使用以下方法永久设置(似乎对浏览器出发的文件选择器未生效)
1 |
|
如何粘贴文件路径
有时候复制了一个文件路径,希望能快速在 finder 中打开,可以使用 command+shift+g
快捷键,然后粘贴路径即可。
在当前目录打开终端或 vscode
选中目录后,从 访达 => 服务 => New iTerm2 Window Here 即可。
这其实和期望中的打开当前目录有所区别,而且也比较慢。
好吧,其实右键菜单的二级菜单中也有。
打开 iTerm2 第一次会有两个终端,这看起来是个 bug。
可以使用 szContext 来自定义右键菜单。
修改文件的默认打开程序
- 在 Finder 中右键点击一个该类型的文件,调出菜单
- 在菜单中选择” 显示简介”(Get Info) 选项
- 在弹出的对话框中,展开” 打开方式”(Open With) 选项
- 选择你要改变的默认打开程序,并点击下方的” 全部更改…“(Change All)
选中打开应用程序时的 始终以此种方式打开 选项很迷惑,没想到是只针对这个文件的。
一个更好的工具是 duti,它可以获取或设置指定类型文件的默认程序,这对批量修改 xcode 打开的文件类型为 vscode 很有帮助。
1 |
|
如何重命名文件
选中文件后按下 Enter 重命名,或者右键菜单中选择 Rename。
如何剪切文件
好吧,它必须使用 command+c 然后通过 command+option+v 来移动文件,这是 mac only,甚至 mac 上的其他程序都支持 command+x。
第三方增强工具 XtraFinder 并不支持 m1,ref: https://www.zhihu.com/question/19579070
如何使用快捷键新建访达窗口
在 finder 中使用 cmd+n 创建窗口,不像 ctrl+e 可以特别方便一只手完成。
如何批量复制文件名
好吧,只需要多选 cmd+c 然后在文本编辑器中粘贴即可得到文件名,不需要任何特殊工具。ref: https://zhuanlan.zhihu.com/p/71065439
如何关闭所有访达窗口
在访达窗口按 option+command+w 关闭当前应用的所有窗口。
应用
视频播放器
在 windows 上基本上都是使用 potplayer,强大而简单。mac 上似乎不支持,所以使用了一个开源工具 iina,控制条稍微有点奇怪,但支持通过键盘控制进度倒也还好。
音乐播放器
虽然 iina 也支持播放音乐,但还是找了一个开源的音乐播放器 museeks。
剪切板历史管理
使用开源程序 Maccy 管理即可,github: https://github.com/p0deje/Maccy
如何转换 wav+cue 为 flac
使用 Medihuman Audio Converter 即可,参考:https://www.reddit.com/r/audiophile/comments/s7ftf3/help_with_cue_splitter_program_for_mac/
沙盒工具使用什么
Parallels 可以安装 windows,但 $80 实在是有点贵。
使用 utm 解决,注意 windows 11 arm 下载有点麻烦,从 uup dump 下载转换必须使用 windows 系统,分享一个合并好的 iso 文件,ref: https://pan.baidu.com/s/1wDPVJRNP27dMv2s1f74TlQ#4qx8。
效果
如何录制 gif
使用开源工具 kap 替代 windows 中的 ScreenToGif,不支持裁剪和缩放时间轴但基本能用(尤其是选择应用窗口的功能,屏幕录制相关工具不支持实在是太蠢)。
开发
mac 上禁用或修改系统的快捷键
首先是 ctrl+space,这是输入法的切换快捷键,在 快捷键 => 输入法 中可以修改
然后是 ctrl+command+space,默认是唤出 emoji 菜单,在 快捷键 => App 快捷键,修改为一个复杂的不常用的快捷键。
禁用 command+alt+m 最小化窗口的快捷键,同样在 快捷键 => App 快捷键,修改为一个复杂的不常用的快捷键。
关闭 cmd+shift+c 创建终端的快捷键,它很容易与浏览器的快捷键冲突。– 这其实是 VSCode 的快捷键。
如何使用类似 ctrl+home/ctrl+end 的快捷键跳转光标
默认情况下 mac 上移动光标的快捷键是
使用 command+home/end 跳转到行(段落)开头/行(段落)结尾
使用 option+left/right 跳转到上一个单词开头/下一个单词段落结尾
使用 command+top/bottom 跳转到文本开始/文本结尾
以上按键都可以与 shift 配合使用。
vscode 中 command+bottom 被 idea 快捷键绑定 editor.action.goToDeclaration
占用了,需要禁用掉它。
配置终端命令行提示
vscode 中无法使用 Run Script 的功能
错误 The terminal process "/bin/zsh '-c', 'pnpm run dev'" failed to launch (exit code: 127).
安装 iter2 和 oh-my-zsh 后解决,奇怪的。
git pull 拉取代码时自动合并
目前使用 git pull
时总是会提示让输入 commit msg,但应该有配置可以禁用这个行为。
1 |
|
ref: https://stackoverflow.com/questions/5480069/
未生效
vscode 切换标签页
好吧,idea 在 windows 平台上默认的 alt+left/right 与 macos 本身的光标跳转有冲突。只能使用以下快捷键缓解这个问题
- command+shift+n 打开文件 – 这是 jetbrains ide 的快捷键
- command+alt+left/right 在打开的文件中将光标后退/前进到下一个位置
- ctrl+tab 切换标签页(显然,这个快捷键用起来不是特别好按)
禁止按住 alt 会输入特殊字符
遗憾的是,这个问题似乎同样无法解决,这是 mac 内置输入法的行为且找不到设置修改。
启动 android studio 时声音会变的很奇怪
禁用虚拟机的声音
1 |
|
可以使用以下脚本禁用所有虚拟机的声音
1 |
|
然后清理数据冷重启虚拟机。
修改 hosts 文件
1 |
|
禁用 mac 上自动创建 .DS_Store 文件
自从使用 mac 之后,很容易在 git 提交时看到这个文件,而且位置不定,很烦。所以期望禁用它,以下是 chatgpt 的答案
你可以在终端中输入以下命令,禁用 macOS 自动创建 .DS_Store 文件:
1 |
|
这将使 macOS 不会在网络卷上创建 .DS_Store 文件。如果你想禁止 macOS 在本地文件夹中创建 .DS_Store 文件,你可以在终端中输入另一行命令:
1 |
|
为了使这些更改生效,你需要注销并重新登录你的 macOS 帐户。如果你想重新启用创建 .DS_Store 文件的功能,可以将以上两个命令中的 “true” 替换为 “false”,并再次注销并重新登录你的系统帐户。
配置 iterm2 终端快捷键
神奇的是,mac 上使用广泛的终端工具的行内移动光标快捷键和 mac 默认的并不一致。期望的和 mac 一致的是
- cmd+left 移动到行首
- cmd+right 移动到行尾
- option+left 移动到单词首
- option+right 移动到单词尾
这需要修改 Key Mappings Preset
clash-verge 配置自定义规则
新建一个 Merge 配置
添加 prepend-rules,配置特定网站使用特定代理,例如
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# Merge Template for clash verge
# The `Merge` format used to enhance profile
prepend-rules:
- 'DOMAIN,ipaddress.my,🇺🇸 USA Seattle 01'
- 'DOMAIN-SUFFIX,google.com,🇺🇸 USA Seattle 01'
prepend-proxies:
prepend-proxy-groups:
append-rules:
append-proxies:
append-proxy-groups:然后它就会自动合并到托管配置中,非常简单
关闭 iterm2 每次关闭都要确认的提示
在 Settings => General => Closing 中可以找到这些选项
jetbrains ide 中输入法的主题不能跟随系统
目前系统主题为暗色,但输入法主题是亮色,似乎是 jetbrains ide 的 bug,只能退出重开 ide。相关 issue: https://youtrack.jetbrains.com/issue/IDEA-252482/
如何创建 icns 图标文件
创建 mac app 并发布必须要使用指定的 icon。
1 |
|
注意:icon.png 图片文件和 icons.iconset 文件夹要保存在同一级目录下,” 终端 “启动后切换到相同目录。