OSX "open"命令,用于使用应用程序创建新文件



所以,我喜欢在OSX中使用TextWrangler编辑代码,并且我倾向于使用终端来控制我的工作流程。通常,我使用bash别名:

alias text='open -a /Applications/TextWrangler.app'

但是,这种方法不允许我根据提示打开新文件。例如,如果我输入emacs newfile.py,它将临时创建一个新文件,但在我实际保存该文件之前不会碰它。但是,使用别名,如果newfile.py不存在,则会出现错误,并且必须手动触摸文件然后打开它。

关于使用open解决这个问题的隐藏方法的任何建议?或者open命令的第三方替代方案?或者这只是基于gui的编辑器的一个基本限制?

如何在启动文件中创建一个函数而不是别名 ?. Bashrc, .profile等)。

newf() {
    echo "$1" | xargs touch; open -a "/Applications/TextWrangler.app" "$1"
} 

一旦添加,源代码启动脚本,只需执行以下操作来使用-

newf dummyfile.txt

和Text Wrangler将弹出一个名为dummyfile.txt的空文件。

我认为您需要一个完整的shell脚本,而不仅仅是一个别名。创建一个包含以下内容的文件:

if [ -e "$1" ]; then
  open -a TextWrangler -- "$1"
else
  touch "$1"
  open -a TextWrangler -- "$1"
fi

保存为text在你的路径和chmod它是可执行的,你的黄金。

如果你真的想让它不存在,如果你不保存它,这是更棘手的。我认为你必须这样做:

if [ -e "$1" ]; then
  open -a TextWrangler -- "$1"
else
  touch "$1"
  open -a TextWrangler -- "$1"
  sleep 1
  rm "$1"
fi

这将实际创建文件,然后在一秒钟后删除它。但是,应用程序仍然会打开该文件,因此,当您保存它时,它将被重新创建。

如果你得到了TextWrangler的大哥BBEdit,那么它附带了命令行工具BBEdit和bbdiff,它给你的行为,你正在寻找加上许多其他有用的功能。

最新更新