Emacs模式

Agda程序通常使用Emacs公司这是解释第节。其他为Agda提供交互式支持的编辑器包括

要在Emacs中编辑模块(假设您有已安装Agda和Emacs模式正确),打开一个文件结束在里面.agda公司然后按加载抄送 C-l公司(其他命令包括列在下面组合键的符号(见下文)。这将将语法高亮显示应用于代码并显示单独的缓冲区。Agda使用特定的背景色来表示代码的特定问题,请参阅背景突出显示如下所示。

配置

如果您愿意,可以自定义Emacs模式。只需启动Emacs和键入以下内容:

M-x公司 加载库 房地产税 agda2模式 房地产税
M-x公司 自定义组 房地产税 阿格达2 房地产税

如果您想要Emacs模式的一些特定设置,可以添加它们agda2-模式hook。例如,如果您不想使用Agda输入法(用于写入各种符号,如∀≥ℕ→π)你可以将以下内容添加到您的.emacs(电子邮件):

(添加hook 'agda2-模式hook
          '(λ ()
            ; 如果您不想使用任何输入法:
            (停用输入法)
            ; (在Emacs的某些版本中,您应该使用
            ; 灭活输入法,而不是
            ; 停用输入法。)

注意,在某些系统上,Emacs模式会更改默认字体为了使许多Unicode符号显示。不过,这只适用于正确的字体。如果你想关闭这个功能,那么你应该自定义agda2-字体集名称变量。

用于突出显示Agda语法和错误的颜色可以是通过键入调整M-x公司 自定义组 房地产税 agda2-突出显示 房地产税在里面Emacs并遵循说明。

键绑定

组合键的符号

描述组合键时使用以下符号:

C类-c(c)

意味着击中c(c)键的同时按下Ctrl键键。

M(M)-x个

意味着击中x个键的同时按下键,称为中高音在许多系统上。或者选择一个罐头类型逃生然后x个(在单独的按键中)。

房地产税

输入,返回键。

统计过程控制

是空格键。

使用术语或类型的命令可以加前缀C-u(C-u)无需进一步计算归一化,具有C-u(C-u) C-u(C-u)计算法线形式,以及C-u(C-u) C-u(C-u) C-u(C-u)计算弱头范式。

全局命令

C类-c(c) C类-

L(左)加载文件。此类型检查文件的内容,并且替换出现的每个问号或者一个洞标记{! !}在一个新开的洞旁边。

C类-c(c) C类-x个 C类-c(c)

C类编译文件。这将使用主要的函数使用给定的后端(GHC公司后端是默认情况下使用)。

C类-c(c) C类-x个 C类-q个

呃,干掉阿格达进程

C类-c(c) C类-x个 C类-第页

杀死和第页重新启动Agda流程

C类-c(c) C类-x个 C类-

A类中止命令

C类-c(c) C类-x个 C类-d日

删除目标并突出显示(d日激活)

C类-c(c) C类-x个 C类-小时

切换显示小时idden参数

C类-c(c) C类-x个 C类-

切换显示相关参数

C类-c(c) C类-=

显示约束

C类-c(c) C类-

S公司求解约束

C类-c(c) C类-

显示所有目标

C类-c(c) C类-(f)

转到下一个目标((f)向前)

C类-c(c) C类-b条

移动到上一个目标(b条向后)

C类-c(c) C类-d日

推断(d日导出)类型。系统要求一个术语并推断它的类型。当在洞内执行时,它将使用孔的内容作为输入(如果有)。

C类-c(c) C类-o个

M(M)o个附录co个内容

C类-c(c) C类-z(z)

范围中的搜索定义

C类-c(c) C类-n个

计算n个正常形式。系统要求一个术语,即然后进行评估。当在洞内执行时,它将输入的孔内容(如果有)。

C类-u个 C类-c(c) C类-n个

计算范式,忽略摘要

C类-u个 C类-u个 C类-c(c) C类-n个

计算并打印显示 <表达式>

C类-c(c) C类-x个 M(M)-

注释/取消注释缓冲区的其余部分

C类-c(c) C类-x个 C类-

切换到不同的Agda版本

目标上下文中的命令

需要输入的命令(例如,将哪个变量拆分为大小写)将使用目标内的文本或要求用户输入。

C类-c(c) C类-统计过程控制

给予(填充目标)

C类-c(c) C类-第页

R(右)定义。检查表达式的返回类型e(电子)孔中的类型与预期类型相匹配。如果是这样的话,这个洞就是替换为e(电子) { }1 ... { }n个,其中有足够数量的新孔已插入。如果孔为空,则细化命令而是插入lambda或构造函数(如果有唯一类型-正确选择)。

C类-c(c) C类-

细化和给予(用规范化的表达式填充目标)。采取同样的措施C-u(C-u)前缀为抄送 C-n公司.

C类-c(c) C类-

自动校样搜索(自动)

C类-c(c) C类-c(c)

C类ase分裂。如果光标位于一个孔中表示定义的右侧,则此命令自动对变量执行模式匹配选择。当给定多个变量(用空格分隔)时将首先拆分案例,然后继续按案例拆分每个新创建的子句中的其余变量。何时在没有变量的情况下,如果目标类型是函数类型,或者引入新的copattern如果目标类型是记录类型,则匹配(请参见共同模式). 当给出特殊符号时.,它会的展开省略号...在条款中(参见带抽象).

C类-c(c) C类-小时

计算的类型小时elper函数和add类型kill ring的签名(剪贴板)

C类-c(c) C类-t吨

目标t吨类型

C类-c(c) C类-e(电子)

上下文(e(电子)环境)

C类-c(c) C类-d日

推断(d日导出)类型

C类-c(c) C类-,

目标类型和背景。显示目标类型,即类型预计在当前钻孔中,以及局部定义的标识符。

C类-c(c) C类-.

目标类型、上下文和推断类型

C类-c(c) C类-

目标类型、上下文和选中术语

C类-c(c) C类-o个

M(M)o个附录co个内容

C类-c(c) C类-n个

计算n个正规形式

C类-u个 C类-c(c) C类-n个

计算范式,忽略摘要

C类-u个 C类-u个 C类-c(c) C类-n个

计算并打印显示 <表达式>

C类-c(c) C类-w个

为什么在范围中,给定一个定义的名称会返回它是如何被引入范围及其定义的

其他命令

桌棋类游戏

缩进当前行,在点之间循环

S公司-桌棋类游戏

缩进电流线,反向循环

M(M)-.

转到点下的标识符定义

鼠标中键

转到单击的标识符的定义

M(M)-*

返回(Emacs<25.1)

M(M)-,

返回(Emacs≥25.1)

Unicode输入

如何使用Emacs编写Unicode字符?

Agda Emacs模式提供了一种输入方法,便于编写Unicode字符。大多数Unicode字符都可以通过输入相应的TeX/LaTeX命令,例如键入输入λ。某些字符具有尚未绑定的键取自TeX/LaTeX(键入\bN(英国)中的个结果正在插入,例如),但所有绑定都以\.

要查看可以使用Agda输入方法类型输入的所有字符M-x公司 描述输入法 房地产税 阿格达或类型M-x公司 agda输入显示翻译 房地产税 房地产税(除以下情况外Emacs的某些版本)。

如果您知道字符的Unicode名称,可以使用M-x公司 ucs插件 房地产税(支持tab补全)或C-x公司 8 房地产税示例:类型C-x公司 8 房地产税 SPACE(空间) SPACE(空间) 附属的 桌棋类游戏 房地产税插入字符“NOT A SUBSET OF”().

(Agda输入法有一个缺点:如果你在键入字符名,然后需要从头开始再一次。如果你觉得这很烦人,那么你可以使用缩写模式相反。但是,请注意,Abbrev模式不能用于minibuffer,用于向许多Agda和Emacs提供输入命令。)

Agda输入法可以通过以下方式定制M-x公司 自定义组 房地产税 agda输入.

好的,但是我怎么才能知道输入什么来获得…字符呢?

找出如何输入特定字符(如标准字符)库中,将光标放置在字符和类型上M-x公司 describe-char(描述)C-u(C-u) C-x公司 =.

例如,对于我得到了以下信息:

字符:?(显示为?)(代码点8759,#o21067,#x2237)首选字符集:unicode(unicode(ISO10646))字符集中的代码点:0x2237脚本:符号语法:w表示:word类别:.:基础,c:中文输入:使用Agda输入法键入“\::”缓冲区代码:#xE2#x88#xB7文件代码:#xE2#x88#xB7(由编码系统utf-8-unix编码)显示:按此字体(字形代码)x: -错误填充-中等-正常--20-200-75-75-c-100-iso10646-1(#x2237)字符代码属性:自定义要显示的内容名称:比例general-category:Sm(符号,数学)分解:(8759)(‘б’)此处有文本属性:僵化t

这里写着我可以打字\::以获得.如果没有“to input”行,然后可以向Agda输入添加键绑定方法,使用M-x公司 自定义变量 房地产税 agda输入-用户-翻译.

显示一些常用字符

许多常用字符的输入序列比相应的TeX命令:

  • 箭头:\第页-对于。您可以替换第页和另一个方向:u个,d日,.例如。\d日-对于.更换-具有===获得双箭头和三箭头。

  • 希腊字母可以通过以下方式输入\G公司然后是拉丁名字母的第一个字符。如。\甘氨酸将输入λ虽然\德国劳埃德船级社将输入Λ.

  • 否定:您可以通过以下方式获得许多字符的否定形式附加n个到名字。例如,while\镍输入,\单位:nin将输入.

  • 下标上标:您可以输入下标或通过在字符前加上\_(下标)\^(上标)。如。克\_1将输入。注意不要所有字符都有Unicode中的下标或上标对应项。

注:引入涉及希腊字母、下标的多个字符或上标,您需要添加前缀\G公司,\_\^分别地在每个字符之前。

本文档中使用的一些字符或标准库中常用的(按十六进制代码排序):

十六进制代码

字符

短键绑定

TeX命令

00交流

¬

\否定

00日7

×

\x

\次

02第2页

ˢ

\^秒

03BB公司

λ

\Gl公司

041楼

П

0432

в

0435

е

0438

и

043C号

м

0440

р(西班牙语)

0442

т

1D62型

\_我

2032

\'1

\素数

207英尺

\^n个

2081

\_1

2082

\_2

2083

\_3

2084

\_4

2096

\_k个

2098

\_米

2099

\_n个

十六进制代码

字符

短键绑定

TeX命令

2113

Ş

\厄尔

十六进制代码

字符

短键绑定

TeX命令

2115

\bN(英国)

\Bbb{N}

2191

\u个

\向上箭头

2192

\第页-

\至

21个A6

\对-|

\地图

2200

\全部

\对于所有人

2208

\英寸

220亿

\镍

220摄氏度

\单位:nin

2218

\o个

\电路控制器

2237

\::

223摄氏度

\~

\模拟

2248

\~~

\近似值

2261

\==

\相等的

2264

\<=

\勒

2284

\亚单位

228E(东经)

\u个+

\uplus公司

2294

\润滑油

22甲2

\|-

\vdash公司

22A4型

\顶部

22年5月

\机器人程序

266天

\b条

266华氏度

\#

27电子8

\<

第27页第9页

\>

十六进制代码

字符

短键绑定

TeX命令

2983

\{{

2984

\}}

2985

\((

2986

\))

十六进制代码

字符

短键绑定

TeX命令

2C7C型

\_j个

背景突出显示

Agda使用各种背景色来指示特定错误或代码中的警告。具体来说,使用以下颜色:

  • A类黄色的背景表示未解决的元变量(请参阅元变量)或未解决的约束。

  • A类轻鲑鱼(粉红色-橙色)背景表示终端或生产力检查(参见终止检查).

  • A类小麦(淡黄色)背景表示覆盖范围有问题检查(参见覆盖范围检查).

  • A类秘鲁(棕色)背景表示阳性检查有问题(请参阅积极性检查).

  • 橙色background表示缺少定义的类型签名。

  • A类亮珊瑚色(深粉红色)背景表示致命警告

  • A类灰色background表示无法访问或死代码,对于望远镜中的阴影变量名。

  • A类白烟(浅灰色)背景表示在定义上不成立(参见案例树).

  • A类粉红色background表示汇流检查的问题重写规则(请参阅汇流检查).