将“文本编辑”替换为默认文本编辑器


91

我已经看到了问题,这样不很解决我的问题。

我想将Sublime Text 3设置为当前使用textedit的所有文件的默认文件查看器/编辑器。

这些文件大多数可以是command+ i'd,但没有扩展名的文件不能。他们给出了各种权限错误,例如此图像中的错误没有足够的信息

有没有办法永远不使用textedit,而是将sublime设置为所有文件的默认编辑器


2
我想知道这个问题的标题是否应该像“将文本编辑替换为默认文本编辑器”之类,以使其在不引用崇高文本的搜索中显示。
dwightk 2014年

1
@dwightk好点,现在更新了
wrossmck

如果给文件扩展名或在GetInfo ..中取消隐藏扩展名,效果会更好吗?
Zo219

@ Zo219不,有些文件根本没有/需要扩展名,这个问题的目的是设置默认编辑器,而不是使用一些次优的解决方法来获得类似的结果。
wrossmck

Answers:


49

将Sublime Text设置为public.plain-text的默认处理程序

defaults write com.apple.LaunchServices LSHandlers -array-add \
'{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}'

这个答案是针对小牛和更早版本的。

对于优胜美地及更高版本,请使用com.apple.LaunchServices / com.apple.launchservices.secure

defaults write com.apple.LaunchServices/com.apple.launchservices.secure LSHandlers -array-add \
'{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}'

请记住重新启动以获取更改。


2
@Ross是(如果不是root用户,请注销并重新登录)。
grg

1
嗯,所以这似乎对我不起作用。(完全重新启动之后。)而且我已经验证了该条目在launchServices.plist中的正确位置
wrossmck 2014年

1
有趣的是,如果我open file2在终端甚至双击操作,它实际上都可以工作。我以为它没有用,因为如果我得到有关它的信息,它表明它是用TextEdit打开的。
wrossmck

1
@Justin似乎file->info现在又一次完全重新启动后,显示Sublime是默认应用程序。我几乎可以肯定,我没有做任何其他事情来改变结果。
wrossmck

1
在OS X Yosemite上,我需要编辑〜/ Library / Preferences / com.apple.LaunchServices / com.apple.launchservices.secure.plist,而上述命令创建了一个文件〜/ Library / Preferences / com.apple.LaunchServices.plist,其中没有效果。
DonnaLea

43

另一种选择是使用duti(http://duti.org / https://github.com/moretension/duti)。

运行brew install duti,将文件类型保存为:

duti -s com.sublimetext.3 public.plain-text all

所做的更改应立即应用,因此您不必像编辑时一样重新启动com.apple.LaunchServices.plist

要还为不带文件扩展名的可执行脚本更改默认应用程序,请添加以下行:

duti -s com.sublimetext.3 public.unix-executable all


1
对文件运行duti时出现错误line 1: line too long。我能够通过不使用设置文件并duti -s com.sublimetext.3 public.plain-text all通过cmd行进行调用来解决它
KyleMit 2015年

这对我有用。使用defaults无效。
nathancahill 2015年

1
@KyleMit您需要在文件末尾有一个空行,以避免该行过长的错误。
2016年

1
也可以使用org.vim.MacVim
ruohola

2
duti.org不再存在。
索林

38

过去,我尝试过grgarside的解决方案,但我相信它是可行的。但是,在优胜美地和卡皮坦岛,我遇到了问题。

DonnaLea在该解决方案中的评论促使我参与创建一个解决方案。com.apple.launchservices在文件名稍有不同之前,我添加了文件夹路径com.apple.launchservices.secure

您可以在以下路径中查看正在修改的文件/文件夹:

/user/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist

截图供参考: 在此处输入图片说明

这是我在终端中使用的命令:

defaults write com.apple.LaunchServices/com.apple.launchservices.secure LSHandlers -array-add \
'{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}'

最后,在重新启动我的计算机后,它按公告运行。


5
感谢您指出我的答案已经过时。我已经指出我的答案适用于哪个OS X版本,并提供了指向该答案的链接。
grg

1
谢谢!可以确认这一点在El Capitan上工作。打开Podfile时不再进行文本编辑了:)
Zsolt勋爵,

我安装了sublime text 3,但没有com.sublimetext.3首选项文件:我需要创建一个吗?
2016年

21
  1. 右键单击Finder中的.txt文件。
  2. 选择“获取信息”。
  3. 展开“打开方式:”,然后在下拉菜单中选择您喜欢的文本编辑器。
  4. 按下下拉菜单下方的“全部更改...”按钮,然后在弹出的对话框中确认“继续”。

这适用于优胜美地(OS X 10.10)。


9
这不能回答问题。问题是如何对所有文件执行此操作,即使没有文件扩展名的文件也是如此。
wrossmck

即使答案与主题无关,它仍然帮助我脱离了Google搜索。+1
泰迪2015年

wrossmck您基本上是正确的-我的回答甚至重复了此问题第一行中提到的“问答”。但是直到我将自己的答案从此页面上的其他答案拼凑起来并发布此答案之后,我才注意到这一点。也许问题在于,搜索简单答案(即.txt文件)会导致此页面,而不是其他页面(如@Teddy和我所发现的)。
David Resnick

@wrossmck这在High Sierra对我有用。一旦我对.txt文件执行了此操作open -t script.sql,即使扩展名不是.txt,我仍会在我按照这些方向设置的首选文本编辑器中键入类似的内容仍将其打开
Mark White,

14

此处提出的解决方案非常适合Sublime,但我想针对Visual Studio Code做到这一点。唯一的区别是您必须为使用的任何文本编辑器找到“应用程序捆绑包标识符”。我运行了以下命令:

/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/Visual\ Studio\ Code.app/Contents/Info.plist 

参考链接

获取标识符“ com.microsoft.VSCode”。然后我安装了“ duti”并运行了以下命令:

duti -s com.microsoft.VSCode public.plain-text all

这应该适用于您要安装在/ Applications下的任何文本编辑器。我希望这对非Sublime用户有帮助。


1
谢谢!该方法也适用于Atom(com.github.atom)。
RobW

1
也适用于MacVim(org.vim.MacVim)!
ruohola

正是我想要的。如果您正在阅读本指南而错过了duti上面的安装说明,则位于apple.stackexchange.com/a/123954/251846
flow2k

要获取此信息duti,您可以安装自制软件,然后运行brew install duti
卡梅隆·哈德森

5

我使用Magic Launch集中所有默认的应用程序管理。您可以将其配置为txt使用Sublime Text作为默认打开所有内容,而无需使用命令行(此外,您可以通过轻松地对其进行更改System Preferences)。

魔术发射首选项

Magic Launch的另一个特别有用的功能是您可以根据文件名和文件夹位置设置规则,我经常使用这些规则来选择不同的应用程序进行开发和编写。


1

RCDefaultApp仍可在macOS Sierra上运行。您可以轻松选择纯文本的默认程序(在我的情况下为BBEedit)。

RCDefaultApp的屏幕截图


这对没有扩展名的文件有用吗?
wrossmck

绝对。在向我显示的选项卡上,基本上可以看到命令行答案的图形前端。如果您只想基于扩展名进行设置(为什么我不知道),则必须转到选项卡“ Erweiterungen” =扩展名。
火车司机

-2

该解决方案是从YouTube视频中提取的,但是它非常适合我的情况(我只是在使用Sublime来以Python,Java和Ruby等语言编辑文件)。

对于任何特定文件,右键单击,选择“更多信息”,然后单击“打开方式”选项卡。您可以在此处选择所需的文本编辑器,然后使用“全部更改”将编辑器用于此类型的所有文件。显然,这对没有扩展名的文件不起作用,但是对我来说这是一个简单的快速修复。


这不是很有用,因为您需要逐扩展进行此操作。问题是寻找一劳永逸的解决方案
wrossmck

-3

右键单击文件->其他->选择您喜欢的文本编辑器(我在我的应用程序文件夹中选择Sublime文本)->选中“始终打开方式”复选框->打开。

此设置将自动应用于机器中的所有其他文件。

无需重新启动或不需要任何第三方软件。


2
没有文件扩展名时不起作用。
grg

@grgarside-无论文件扩展名如何,我都认为这根本不起作用。我真的不怪Hari,因为这是应该“起作用”的基本功能之一。苹果在它上面有一个开放的错误(我几年前就填补了,苹果显然拒绝修复它)。

@jww对于具有扩展名的文件来说,这似乎对我来说非常有用-这就是我通常更改文件关联的方式。
grg

-3

首先,获取要设置默认文本为默认文件的信息。然后转到“打开为”部分,然后选择“崇高”。之后,按Change all,然后继续在弹出菜单上完成操作说明第1部分

第2部分


当文件类型没有扩展名时,这将不起作用
wrossmck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.