为什么替换文本擦除不一致?

为什么替换文本擦除不一致?

我写了一个简单的序列来输出,当在某处输入字符串时mdcode,一个Markdown代码块模板,例如

```python

```

创建上述代码大多数时候都可以工作:

::mdcode::
{
  ; query user for the language of the code block
  Lang := InputBox(,  "input MD code language")
  ; send the code block structure
  Send "{U+0060}{U+0060}{U+0060}" . Lang.Value . "`n`n`n{U+0060}{U+0060}{U+0060}{Up}"
}

有时(这很难重现),在代码执行过程中,一些字母mdcode不会被删除,最终导致mdcode没有完全删除

mdc```python

```

(剩余字母的数量各不相同,可以是一个,也可以是三个,......)

我猜想存在某种时间问题,即在替换mdcode完成之前就开始构建代码块。这可以修复吗?

答案1

这是因为 InputBox GUISleep 100在后添加了行,所以输入窗口将有时间将焦点切换回自身。

相关内容