如何设置Makefile默认编辑器?解决修改默认打开应用报错问题
解决Mac上无法设置Makefile默认编辑器的问题
我之前也碰到过一模一样的问题!通过Finder的「显示简介」修改Makefile默认打开方式时,经常会因为系统对无后缀文件的特殊处理逻辑报错。下面给你几个靠谱的解决办法,覆盖本地和CyberDuck远程编辑的场景:
方法1:用命令行修改系统文件关联(最稳定)
macOS的Launch Services对无后缀文件的GUI设置支持不太友好,用命令行直接修改是最可靠的方式:
获取编辑器的Bundle ID
先确定你要设置的编辑器的Bundle ID,比如:- Atom:在终端执行
mdls -name kMDItemCFBundleIdentifier /Applications/Atom.app,输出通常是com.github.atom - Sublime Text 4:执行
mdls -name kMDItemCFBundleIdentifier /Applications/Sublime\ Text.app,输出通常是com.sublimetext.4
- Atom:在终端执行
注册编辑器并设置关联
执行以下命令替换对应的Bundle ID(以Atom为例):# 强制注册编辑器到Launch Services /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -v -f -tr /Applications/Atom.app -all local,system,user # 给Makefile文件设置默认打开程序 defaults write com.apple.LaunchServices LSHandlers -array-add '{LSHandlerPattern="Makefile"; LSHandlerRoleAll="com.github.atom"; LSHandlerContentType="public.plain-text";}'重启相关进程生效
killall Finder; killall SystemUIServer
方法2:配置CyberDuck的默认编辑器
CyberDuck有独立的编辑器设置,不受系统默认关联影响,需要单独配置:
- 打开CyberDuck,点击顶部菜单栏的「CyberDuck」→「偏好设置」(快捷键
Cmd+,) - 切换到「编辑器」标签页
- 在「外部编辑器」下拉菜单选择「自定义」,然后找到你的Atom/Sublime Text应用(比如
/Applications/Atom.app) - 如果你想仅针对Makefile设置,可以点击「添加规则」,在「文件扩展名/模式」输入框中填写
Makefile,然后选择对应的编辑器,点击「确定」保存即可。
为什么Finder修改会报错?
Makefile属于无后缀的纯文本文件,macOS的Launch Services对这类文件的关联处理有特殊缓存机制,通过GUI修改时容易触发权限或缓存冲突,导致报错。命令行方式直接绕过了GUI的限制,能更可靠地修改关联规则。
内容的提问来源于stack exchange,提问作者user5359531
相关产品推荐
相关产品推荐

