OSX“打开”命令用于使用应用程序创建新文件

时间:2011-12-22 20:11:24

标签: macos bash terminal

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

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

但是,此方法不允许我从提示中动态打开新文件。例如,如果我输入emacs newfile.py,它会暂时创建一个新文件,但在我实际保存文件之前不会触摸它。但是,使用我的别名,如果newfile.py不存在,那么我会收到错误,必须手动触摸该文件然后再将其打开。

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

3 个答案:

答案 0 :(得分:1)

我认为你想要一个完整的shell脚本,而不仅仅是一个别名。制作包含以下内容的文件:

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

将它保存在PATH中的text某处,然后将其命名为可执行文件,您就是金色的。

如果你真的想要这样做,如果你不保存文件就不存在,那就太麻烦了。我想你必须做这样的事情:

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

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

答案 1 :(得分:1)

如何在starup文件(.bashrc,.profile等)中创建功能而不是别名

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

添加后,请提供您的启动脚本,然后执行以下操作 -

newf dummyfile.txt

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

答案 2 :(得分:0)

如果你得到TextWrangler的大哥BBEdit那么它附带命令行工具bbedit和bbdiff,它们可以为你提供你正在寻找的行为以及许多其他有用的功能。