【问题标题】:Is there a way to know from the command line which files TextWrangler currently has open?有没有办法从命令行知道 TextWrangler 当前打开了哪些文件?
【发布时间】:2014-02-04 20:16:04
【问题描述】:

TextWranger 带有它的命令行工具“编辑”,它允许我在命令行上打开一个文件进行编辑。问题是,“编辑”程序在向 TextWrangler 发送命令以打开文件后立即结束(将控制权返回给调用程序)。

如果我想使用 TextWrangler 作为我的首选编辑器来设计一个考虑到“vi”之类的工具的脚本,这可能会产生问题,这会导致导致它们等待编辑完成的 shell 并且文件已关闭。

现在,理论上,我知道有一种方法可以解决这个问题。我可以编写一个包装脚本,它可以做三件事:(1)使用我希望编辑的任何文件调用“编辑”(2)继续运行,一遍又一遍地检查(不比每秒更频繁 - 但可以优先选择调整为经常较少执行此操作)以查看 TextWrangler 是否仍然打开我要求它编辑的文件,并且 (3) 仅在 TextWrangler 不再打开文件时结束它的执行。

当然,这是我目前只能在理论上做的事情——要将理论付诸实践,我还需要知道一件事——那就是, 有一种方法可以让脚本从命令行检查 TextWrangler 当前打开了哪些文件——或者更好的是,它是否仍然打开了我关心的特定文件?

【问题讨论】:

    标签: scripting edit textwrangler


    【解决方案1】:

    --wait 用于twdiffedit。我在 vim 以及 svn/git 中广泛使用它:没有这些标志,临时文件会立即被删除,diffing 或编辑它们会导致错误,因为找不到原始文件。

    它还允许您循环浏览多个文件,并且在关闭最后一个文件之前不会打开下一个文件。

    请参阅twdiff -?edit -? 了解更多详情。

    【讨论】:

    • 非常感谢。 :-) 我刚刚尝试了您的答案,并且效果很好。 :-) 以前,我想知道是否能找到编写我所说的包装脚本所需的信息。 :-) 现在,我可能根本不需要编写包装脚本——如果我这样做了,那么包装脚本需要做的就是添加“-w”(又名“--wait”)选项。 :-) 谢谢。 :-)
    • 很高兴答案有所帮助。顺便说一句,有时twdiff 在涉及多个文件时无法正常工作,并且twdiff 在脚本中使用(例如为git 做差异),并且脚本行这是必要的: /usr/local/bin/twdiff --wait --resume "$2" "$5" | cat。注意最后的管道|cat:出于某种原因,这些有助于脚本在所有提供的文件上工作,而不是在第一个文件之后死去。
    • 是的 --- 尽管除非git 添加一个关键功能,否则我无意在我的任何项目中使用它。我需要的关键特性是具有中等深度克隆的能力——与浅层克隆不同,它可以作为一个整体完全参与项目(包括生成、推送和拉取提交)——但与完整克隆不同的是,它没有需要包含项目的整个历史 - 只是项目在某个日期的整个历史,以及在该时间存在的每个文件版本的原始信息中等深度的历史开始了。
    猜你喜欢
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 2011-01-13
    • 2017-08-06
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多