通过键入文件名打开 PDF 文件

我在 Mac OS X 上,而且我通常从无法治愈的(使用 bash)中打开 PDF 文件

open myfile.pdf

现在我可以只打字了

myfile.pdf

并使用上面的命令打开它。 是否有机会配置 bash 为我运行该命令? 如果这仅适用于 PDF 文件,我当然会非常高兴,但显然欢迎使用更通用的补救措施。

实际上,它不仅仅是为了节省几次击键。 如果一项服务需要我 2 小时,我怀疑在接下来的几年中,我肯定会通过减少两次按键来节省这么多时间。 我当然会想知道这是否可能以及如何。

5
2022-06-07 14:41:36
资源 分享
答案: 3

我希望您可以为 open 名称 o 创建一个笔名,然后键入

 o myfile.pdf

尽管我不知道这是否可以节省您输入 open 的主动性:-) 必须完全指定文件名。

所以对于笔名:

alias o="open"

必须进入你的 ~/.bashrc file

1
2022-06-07 15:11:18
资源

有一种方法可以将此函数添加到 bash

当您尝试“运行”数据时,bash 肯定会发出 command not found 错误:

$ 1.pdf
bash: 1.pdf: command not found

之后它肯定也会发出 ERR “信号”。 使用 buildin trap 您可以捕获此类信号,并指定肯定会处理错误的函数。

那个页面 上,您可以找到肯定会管理该错误的脚本(另请阅读 解释)。

手稿有很好的评论,因此根据您的需要对其进行修改应该不是问题。

捕获 ERR 后,它会检查最后一个命令的错误代码。 如果是错误 2、126 或 127 它肯定会继续。 在下一个动作中,它将检查最后一个命令并将其拆分为命令组件以及分歧。

首先 if..fi “处理涉及未能记住前导斜线的可行错误”,因此您可以将其删除。

在下一个 if 声明的请求中,会检查您的命令是否为目录,因此它也可能被删除。 更令人着迷的是 if 的第二部分 - 手稿检查文件类型并打印一些关于如何打开这种文件的想法。 而不是你可以简单地放一些像 open $cmdAPPLICATION_TO_OPEN_PDF $cmd (当然你需要添加检查文件是否为 PDF)。

安全提示:如果您希望使用该功能,您应该使用 APPLICATION_TO_OPEN_PDF $cmd 而不是 open $cmd。 您还需要为某些文件类型设置活动,并且不要对所有类型的数据使用 open 或 director,以避免运行一些破坏性的手稿或类似的东西。


同样还有另一种方法可以做到这一点,但我认为它可能会引起一些麻烦,因为它更具侵入性。

您可以重新定义函数 command_not_found_handle() 并放置在那里进行检查以及 opens。 这肯定会导致没有错误消息,但是如果您不打算处理,我不确定它会以错误代码和消息完成什么。

8
2022-06-07 15:11:08
资源

在 zsh 中,在 .zshrc 中定义一个 后缀别名

alias -s pdf=open

Zsh 通常比 bash 具有更好的交互功能和更好的编程特性。 鉴于至少 10.4,它已与 Mac OS X 一起交付。

6
2022-06-07 15:10:39
资源