Unicode 符号在编写 Coq 时无法用于 Proof-general
Unicode symbols fail for Proof-general while writing Coq
我在 Ubuntu 中使用 Coq 8.11 和 Proof-general。我写:
Ltac example1 :=
fail.
并成功。假设我想使用 unicode 符号:
Proof-General -> Display -> Quick Options -> Unicode Tokens
那我再写一次:
Ltac example2 ≔
fail.
并因错误而失败:
Error: Syntax Error: Lexer: Undefined token
所以我去找一些编辑器,写下序列“:=”,然后边写边复制粘贴:
Ltac example3 :=
fail.
很高兴我又成功了。
上面出现了很多你能想到的符号 |-, /\, /, 等等
我该如何解决?
因此,显示 Unicode 标记与将 Unicode 标记识别为输入是有区别的。
显示 Unicode 标记作为一种视觉连字,而底层文本仍然是 ASCII。这意味着,您键入 :=
,编辑器显示 ≔
,但如果您使用其他编辑器打开,您仍然会看到 :=
。
现在如果你想在你的代码中使用 Unicode 标记,你可以,但是你需要通过导入 Unicode.Utf8
模块:
From Coq Require Import Unicode.Utf8.
我在 Ubuntu 中使用 Coq 8.11 和 Proof-general。我写:
Ltac example1 := fail.
并成功。假设我想使用 unicode 符号:
Proof-General -> Display -> Quick Options -> Unicode Tokens
那我再写一次:
Ltac example2 ≔ fail.
并因错误而失败:
Error: Syntax Error: Lexer: Undefined token
所以我去找一些编辑器,写下序列“:=”,然后边写边复制粘贴:
Ltac example3 := fail.
很高兴我又成功了。
上面出现了很多你能想到的符号 |-, /\, /, 等等
我该如何解决?
因此,显示 Unicode 标记与将 Unicode 标记识别为输入是有区别的。
显示 Unicode 标记作为一种视觉连字,而底层文本仍然是 ASCII。这意味着,您键入 :=
,编辑器显示 ≔
,但如果您使用其他编辑器打开,您仍然会看到 :=
。
现在如果你想在你的代码中使用 Unicode 标记,你可以,但是你需要通过导入 Unicode.Utf8
模块:
From Coq Require Import Unicode.Utf8.