2
程序(例如命令行实用程序)产生外部编辑器并读回文件更改的典型设计是什么?许多命令行实用程序都这样做。例如,svn commit
启动了一个外部编辑器,以便在没有-c
的情况下运行该注释。产生一个外部编辑器 - 这是如何工作的?
我已经考虑的一些选项有:
- 投票临时文件文件,等待时间戳改变,但这仅限于单一的拯救。
- 向操作系统注册以通知对临时文件的更改,但这将取决于平台,我希望避免这种情况。
- 监视生成的进程,等待它终止,但我不确定这将如何工作的编辑器,如TextMate和TextWrangler,通常具有长寿过程。
- 与stdin和stdout生成的进程交互,但我不清楚如何/如果这可以工作的细节。
希望解决方案与平台无关。为了记录我的平台是OS X上的JVM。
P.S.任何关于这个问题适当标签的建议?
确保编辑器不会分叉到后台并立即返回。如果是这样,应该有一个命令行选项来阻止它。 – 2011-05-17 14:13:48
检查包含用户首选编辑器的'EDITOR'环境变量是很好的风格。 – 2011-05-17 14:14:23