如何将TextEdit永久放在“使用...打开”菜单列表中?


25

我是一名开发人员,经常处理不寻常的文件类型。如果要在TextEdit中打开这些文件之一,则必须先启动它,然后再使用它打开文件,或者将文件拖到TextEdit图标。

有没有一种方法可以将TextEdit.app永久放入“使用...打开”菜单列表中,而不管我要查看哪种文件类型?

当然,如果TextEdit不是您的理想选择,那么此过程对于您选择的任何文本编辑器都会很有用。


1
我也有这个愿望。目前,我将TextEdit保留在Dock中,因此始终可以将文件拖到其中。
GEdgar

Answers:


19

对所有文件类型执行此操作的唯一方法是在automator中创建服务,这实际上应该使您更轻松。

  1. 打开Automator,然后选择“服务”。
  2. 在“服务接收选定的...”下拉列表中,更改为“接收选定文件和文件夹中的任何应用程序
  3. 从左侧窗格的库菜单中选择实用程序,然后双击“运行Shell脚本”
  4. 将“传递输入”下拉菜单更改为“作为参数”
  5. 删除默认脚本并替换为以下内容:

    if [ -f "$1" ] ; then
        open -a "TextEdit" "$1" ;
    fi
    

将该文件保存为上下文菜单中要显示的文件,例如“使用TextEdit打开”,完成后,您现在可以选择使用文本编辑打开任何文件。

它不会在“打开方式”菜单中显示,它将是上下文菜单中与您正在运行的任何其他服务组合在一起的单独项。

附带说明一下,如果您是在Mac上进行开发,则应该真正考虑使用更好的文本编辑器,例如TextMate或TextWrangler或Sublime Text,其中一些甚至可以为您添加服务,从而省去了上述所有工作。


1
+1,是的,TextEdit不是真正的纯文本编辑器,它可以做到,但是它没有任何使它变得更容易的功能,而宁愿编辑富文本。
NReilingh

美丽!如果我们可以将其限制为文本格式的所有文件(包括源代码等)
那就更好了

1
有什么方法可以使其出现在主菜单中,而不必在服务菜单中进行搜索?或至少隐藏服务菜单中未使用的项目...
pqnet 2014年

@pqnet-您发现如何做到这一点?我也在寻找:apple.stackexchange.com/questions/206068/…–
克里斯·斯诺

7

您可以通过编辑Info.plist来添加受支持的文件类型,但是我不知道对所有文件类型都可以这样做。将诸如public.data或public.item之类的UTI添加到Info.plist或com.apple.LaunchServices.plist似乎无效。

我已经使用duti将TextMate设置为不同纯文本类型的默认应用程序:

# plain text files without an extension
com.macromates.TextMate.preview public.plain-text all

# executable scripts
com.macromates.TextMate.preview public.unix-executable all

com.macromates.TextMate.preview .as all
com.macromates.TextMate.preview .ass all
com.macromates.TextMate.preview .bash all
com.macromates.TextMate.preview .bom all
com.macromates.TextMate.preview .c all
com.macromates.TextMate.preview .cfm all
com.macromates.TextMate.preview .cfml all
com.macromates.TextMate.preview .class all
com.macromates.TextMate.preview .coffee all
com.macromates.TextMate.preview .conf all
com.macromates.TextMate.preview .cpp all
com.macromates.TextMate.preview .css all
com.macromates.TextMate.preview .csv all
com.macromates.TextMate.preview .ctp all
com.macromates.TextMate.preview .dat all
com.macromates.TextMate.preview .data all
com.macromates.TextMate.preview .doc all
com.macromates.TextMate.preview .erb all
com.macromates.TextMate.preview .fields all
com.macromates.TextMate.preview .gemspec all
com.macromates.TextMate.preview .h all
com.macromates.TextMate.preview .haml all
com.macromates.TextMate.preview .hotkey all
com.macromates.TextMate.preview .hpp all
com.macromates.TextMate.preview .idx all
com.macromates.TextMate.preview .java all
com.macromates.TextMate.preview .js all
com.macromates.TextMate.preview .json all
com.macromates.TextMate.preview .keylayout all
com.macromates.TextMate.preview .kmlibrary all
com.macromates.TextMate.preview .less all
com.macromates.TextMate.preview .log all
com.macromates.TextMate.preview .m all
com.macromates.TextMate.preview .manifest all
com.macromates.TextMate.preview .md all
com.macromates.TextMate.preview .mm all
com.macromates.TextMate.preview .msass all
com.macromates.TextMate.preview .opml all
com.macromates.TextMate.preview .pg all
com.macromates.TextMate.preview .php all
com.macromates.TextMate.preview .pl all
com.macromates.TextMate.preview .plist all
com.macromates.TextMate.preview .plist all
com.macromates.TextMate.preview .py all
com.macromates.TextMate.preview .rb all
com.macromates.TextMate.preview .rd all
com.macromates.TextMate.preview .rdoc all
com.macromates.TextMate.preview .readme all
com.macromates.TextMate.preview .rhtml all
com.macromates.TextMate.preview .rst all
com.macromates.TextMate.preview .sb all
com.macromates.TextMate.preview .scss all
com.macromates.TextMate.preview .sh all
com.macromates.TextMate.preview .srt all
com.macromates.TextMate.preview .strings all
com.macromates.TextMate.preview .sub all
com.macromates.TextMate.preview .tex all
com.macromates.TextMate.preview .tsv all
com.macromates.TextMate.preview .utf all
com.macromates.TextMate.preview .xml all
com.macromates.TextMate.preview .yaml all

duti不支持仅添加应用程序以使用菜单打开而不将其设置为默认菜单。


2

这是@JamiePatt 接受的答案的改编版本,使用了user48595的改进,此外,它将使TextEdit成为默认应用程序,以便在实际打开文件之前将其打开。这意味着将来可以以常规方式打开文件。

  1. 通过运行验证十六进制代码xattr -p com.apple.LaunchServices.OpenWith <file>,其中“文件”是您已手动设置为使用TextEdit打开的某些文件。

  2. 打开Automator并为您的文档选择类型“服务”。

  3. 在下拉菜单“服务已选中”下,选择“文件或文件夹”。

  4. 添加步骤“实用程序->设置变量值”。您应该看到一个名为“ Storage”的变量。

  5. 添加步骤“实用程序->运行Shell脚本”。在下拉菜单“通过输入”下,选择“作为参数”。将文本字段的内容替换为下面的内容,确保十六进制代码与第一步中获得的内容相同。

    if [ -f "$1" ] ; then
        xattr -wx com.apple.LaunchServices.OpenWith "62 70 6C 69 73 74 30 30 D3 01 02 03 04 05 06 57 76 65 72 73 69 6F 6E 54 70 61 74 68 5F 10 10 62 75 6E 64 6C 65 69 64 65 6E 74 69 66 69 65 72 10 00 5F 10 1A 2F 41 70 70 6C 69 63 61 74 69 6F 6E 73 2F 54 65 78 74 45 64 69 74 2E 61 70 70 5F 10 12 63 6F 6D 2E 61 70 70 6C 65 2E 54 65 78 74 45 64 69 74 08 0F 17 1C 2F 31 4E 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63" "$1";
        xattr -d com.apple.quarantine "$1" || true;
    fi
    
  6. 添加步骤“实用程序->获取变量值”。您应该看到一个名为“ Storage”的变量。

  7. 添加步骤“文件和文件夹->打开查找程序项”。在“打开方式”下拉菜单下,选择“ TextEdit”。

  8. 使用一个令人难忘的名称保存,例如TextEditify。

第一次要打开非TextEdit文档时,必须从右键单击菜单中选择TextEditify。随后的打开可能会以正常方式发生。

脚本说明:

xattr如果您手动选择“总是打开方式” ,第一个命令将添加通常保存的属性。

第二个xattr命令确保该方法适用于从Internet下载的文件。


1

您可以按照Impactjamie的描述创建“服务”菜单工作流。但是,您可以仅使用“打开查找程序项”选项并将TextEdit添加为应用程序。

有一个很好的一篇关于它在这里,这说明了如何进行更详细的创建工作流程。


1
关于“与众不同”的答案不仅需要链接。可以包含链接,但请在答案中进行总结或摘录。这个想法是使答案独立存在。
nohillside

0
  1. 打开Automator应用程序

  2. 请点击 New Document

  3. 选择 Service

    在此处输入图片说明

  4. 更改Services receives selected为“文件或文件夹”

    在此处输入图片说明

  5. 搜索Action“打开查找程序项”并将其拖到工作流空间中

    gif

  6. 更改Open with:为“ TextEdit”或您想要的任何应用程序(我更喜欢“ Visual Studio Code”)

  7. 将您的服务保存在逻辑上,例如如果选择了TextEdit,则使用“使用TextEdit打开”。

现在,您可以右键单击任何Finder项目,然后选择Services-> Open with TextEdit

感谢user48595和他的答案中张贴的链接:http : //www.mactricksandtips.com/2013/05/add-open-with-textedit-or-any-other-app-to-right-click-menu-item .html


-3

只需使用选项“ -e”即可通过TextEdit打开:打开-e yourfile.whatever,它将在TextEdit中打开它。

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.