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

问题描述:

因此,我喜欢使用TextWrangler在OSX中编辑代码,并且我倾向于使用终端来控制我的工作流程。一般情况下,我用一个bash别名:OSX“打开”命令用应用程序创建新文件

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

然而,这种方法并不让我打开从提示飞新文件。例如,如果我输入emacs newfile.py它会临时创建一个新文件,但在我实际保存该文件之前不会触摸它。但是,如果我的别名不存在,那么我得到一个错误,并且必须手动触摸该文件然后打开它。

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

我想你想要一个完整的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 

这实际上会创建文件,然后在一秒钟后删除它。该应用程序仍然会打开该文件,以便在保存时重新创建。

+0

感谢您的建议。我觉得我可以这样做,但我一直在努力寻找更通用的解决方案。 结束于: 'if [“$ 1”];然后 \t if [-e“$ 1”];然后 \t \t开放-a的TextWrangler - “$ 1” \t其他\t \t \t触摸 “$ 1” \t \t开放-a的TextWrangler - “$ 1” \t \t睡眠1 \t \t RM “$ 1” \t科幻 其他 \t开放-a的TextWrangler fi' 因此,它也就会注意到,如果我不叫一个文件也是如此,万一我想用这种方式以及。 – wdahab 2011-12-22 21:02:43

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

+0

是的,好吧,我的问题不仅限于TextWrangler。那只是一个例子。这个问题与任何应用程序相关。 – wdahab 2011-12-22 20:32:33

如何只创建一个功能,而不是一个别名在你的Starup文件(的.bashrc,.profile文件等)。

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

添加后,源你的启动脚本和只是下面使用这个 -

newf dummyfile.txt 

和文本牧马人,会弹出一个名为dummyfile.txt一个空文件。