在编辑器中打开文件时将文本附加到文件中

在编辑器中打开文件时将文本附加到文件中

场景如下:用户创建一个新文件php源码假设使用 nano。用户写入一些内容,保存文件(阶段 S1),但不退出 nano。他再次进行一些更改,然后再次保存文件后退出 nano(阶段 S2)。

问题:我有一段代码(触发器),需要在每个php 目录中的文件。我可以这样做。但在上面的场景中,一旦我检测到创建了新文件(使用 inotifywait)(阶段 S1),我就会将我的代码注入其中。但是,由于 nano 从未关闭过,因此在下一次保存(阶段 S2)中,我注入的代码会被用户的新更改覆盖。我该如何摆脱这个问题?

PS:编辑器可以是任何文本编辑器,我不知道用户使用什么编辑器来创建文件。

答案1

您需要修改代码注入器进程,使其在 PHP 文件修改或创建,并使其足够智能,以检查您的代码是否存在,如果不存在则插入。否则,您很容易受到以下情况的影响:

  1. 用户创建php源码,保存并退出编辑器。
  2. 您的流程插入您的代码。
  3. 用户编辑文件,看到你的代码,说“WTF?”然后删除它(并保存文件)。

答案2

抱歉,但编辑器以多种不同的方式缓冲编辑过程。除非您根据所需的架构生成自己的编辑器并强迫每个人都使用该特定编辑器,否则您将会大失所望,并经历许多复杂的过程,而问题仍然存在。

编辑器上的包装器也无助于解决这个问题。只要文件在逻辑上处于打开状态(缓冲模式),您就注定会失败。

相关内容