通义灵码是阿里云与通义实验室联手推出的一款智能编程助手,它能实时续写代码,支持自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、智能问答及异常排查等多种功能,真的是开发者的好帮手。
国际市场研究公司Gartner发布了第一个AI代码助手的魔力象限,通义灵码凭借其强大的产品功能和广泛的市场应用,表现非常出色,阿里云更是成为了唯一跻身挑战者象限的中国科技公司。
通义灵码在上线不到一年内,就成功入围Gartner的挑战者象限,产品实力得到了广泛认可。它的基础模型已经升级为Qwen2,支持200多种编程语言,而且与Visual Studio Code、Visual Studio、JetBrains IDEs等主流编程工具兼容,能够帮助开发者写代码、调试、优化代码,同时也能提供智能问答的功能。此外,通义灵码还支持上传企业的私有知识库,实现更符合企业需求的知识问答。
截至目前,通义灵码的下载量已经超过470万,每天帮助开发者生成超过3000万行代码,开发者们已经采纳了超过亿行的代码。像一汽集团、中华财险和哈啰集团等公司都在使用通义灵码,研发效率提升了10%以上,AI生成的代码占比接近30%。
快来下载试试吧:https://tongyi.aliyun.com/lingma
你想更好地使用通义灵码吗?这里有我们为你准备的最佳使用指南,欢迎收藏哦!
巧用快捷键
1.1 默认快捷键
通义灵码有许多开箱即用的快捷键,下面是一些常见的:

此外,在通义灵码的问答界面,你可以使用Cmd+Enter(Macos/Linux)或Ctrl+Enter(Windows)在输入问题时换行(直接按回车键会将问题发送给模型)。
备注说明:更改生成结果的快捷键可以提高生成内容的多样性参数,有时能产生更长或更有创意的结果。
1.2 自定义快捷键
在JetBrains IDE中设置快捷键的方法是,打开菜单栏的设置页面,点击左侧的快捷键,然后找到插件中的TONGYI Lingma子项,展开后即可查看和编辑快捷键。

VSCode的快捷键设置方法是,点击IDE左下角的设置图标,进入快捷键菜单,在页面中搜索TONGYI Lingma就能查看和编辑所有快捷键。


备注说明:为了方便识别,VSCode中的大部分通义灵码快捷键都是以TONGYI Lingma命名的,但某些内联建议的快捷键与系统级功能重合,因此命名上略有不同。
配置的灵活运用
2.1 进入配置面板
在JetBrains IDE中,配置面板位于设置页面的顶级菜单TONGYI Lingma部分,可以通过点击状态栏的通义灵码小图标,快速选择“高级设置”打开。
轻松上手:如何设置你的编程环境


在VSCode中,你也能通过状态栏右下角的通义灵码图标,轻松点击“高级设置”进入配置面板哦。

2.2 常用配置项
2.2.1 禁用特定文件类型的自动补全
如果某些文件的自动补全让你觉得烦,可以把这些文件类型的后缀加到列表里,用英文逗号分开,比如:txt,md。
在JetBrains IDE中,配置位置如下:

VSCode的配置区域则在这里:

小贴士:禁用自动补全功能是为了避免干扰,但如果你在文件中手动使用快捷键触发补全(默认是 Alt+P),依然能享受大模型的内容生成哦。
2.2.2 保留下拉提示中的补全结果
一般情况下,当IDE显示基于语法的下拉补全时,通义灵码会自动隐藏大模型的补全结果,避免让你眼花缭乱。

如果你希望通义灵码始终生成大模型的补全,可以勾选这个选项,效果如下图,这样按Tab键就会使用大模型的结果了:

JetBrains IDE的配置区域如下:

VSCode的配置区域也是这个样子的:

2.2.3 生成内容的长度控制
通义灵码允许你分别设置自动和手动触发的代码续写生成长度。通常建议手动触发(默认快捷键 Alt+P)的生成长度设置得稍微长一些。
JetBrains IDE的配置区域:

VSCode的配置区域:

代码注释的灵活运用
3.1 利用注释引导代码补全
在没有额外注释的情况下,模型只能根据现有代码和项目内引用的相似代码来进行推测。若模型的推测不太靠谱,可以通过添加一些代码来给模型指明下一步应该写什么。
比如在某段代码中,模型初步猜测了一个 CHAT_CONTEXT 字段,但这并不是我们想要的结果:

于是,我们加了一条注释,指示模型下一个字段是历史记录,结果模型生成了我们想要的字段以及相应的数据填充代码:

3.2 利用描述创建方法
通过“在编辑区用注释引导补全”或者“使用通义灵码的问答面板”,都可以根据注释生成一个完整的方法。由于通义灵码在智能问答场景下的模型参数通常比代码补全时的参数更庞大,所以建议在问答面板直接提出需要生成的问题描述。

如果你对生成的语言或方法签名(包括方法名、参数类型和返回值类型)有特别的要求,可以在提问时提前描述好这些方法签名。例如:

跨文件索引的有效运用
4.1 及时保存文件以更新索引
通义灵码的跨文件索引功能是避免代码幻觉的重要工具。通过自动识别当前上下文所用到的类型和方法定义,模型能够了解项目中其他文件的类型及其成员和方法参数。
当你首次打开一个新项目时,通义灵码会自动生成该项目的文件索引,之后每当文件被保存时,都会触发该文件的增量索引更新。不过,由于IDE中通常会有内存缓存,刚写完一个文件后切换到另一个文件时,可能因为本地索引未更新,导致无法识别新增加或修改过的内容,依然按原有类型结构进行推理。
比如在某个项目中,我们给 Pet 对象新增了一个 saleable 属性。

然后切换到另一个文件,尝试让模型进行补全,但模型推断出的逻辑却用了一个不太相关的字段。

为了消除这种信息差异,你可以在编辑完前一个文件时,主动按下文件保存(快捷键Ctrl+S),然后再继续编辑其他文件,这样生成的内容就能正确引用到修改后的对象结构了。

4.2 MyBatis场景的优化
除了流行的编程语言如Java、Python和JavaScript支持跨文件引用,通义灵码在编写MyBatis的xml文件时,也能很聪明地识别Mapper对象所涉及的表结构类型。比如,当你在写一个insert语句时,这个插件能根据当前项目中的TexiOrder类型的信息,确保每个字段的正确性。


及时清理上下文
5.1 适时清空上下文
在同一个会话中,之前的对话内容会在你每次问大模型问题时,自动作为上下文提供给它。可是,如果你想问的其实跟前面的内容没关系,这些多余的信息就会让模型的回答变得不那么准确。

这时,你可以点一下问答面板上方的新会话按钮,在新的会话中进行提问,或者用 /clear context 命令,清空上下文,减少之前内容对你后续问答的影响。

5.2 查看历史会话
在创建新会话后,若想找之前问过的问题,可以利用历史记录功能,回到之前的话题并继续提问。

基于代码提问
6.1 通用问答
如果你想针对特定的代码段提问,除了直接把代码粘贴到问答区外,还可以先在代码编辑器中选中一段代码,然后在问答区就这段代码进行提问,例如:

6.2 内置代码任务
通义灵码插件内置了四个代码任务:解释代码、生成单元测试、添加代码注释和给出优化建议。大语言模型已经针对这些任务进行了专项训练。例如,当需要生成单元测试时,直接使用内置任务比框选代码后再生成效果要好。
这些代码任务可以通过三种方式使用,最常用的方式是在方法定义的开头,点击通义灵码的小图标,从下拉菜单中选择需要执行的任务。
在Jetbrains IDE中,下拉菜单出现在方法上方:

在VSCode中,下拉菜单位于IDE顶部:

第二种方式是选中代码后,右键点击,并选择通义灵码菜单。

交流技巧小贴士
你可以选择代码后,在问答面板里输入斜杠(/),这样就能激活内部任务菜单,接着挑选你想要的任务。

7.1 提问时引用代码
当你在提问的时候,如果在代码编辑区选中了某段文本,那么这部分内容会自动以 Markdown 的格式附加到问题的末尾。所以,提到选中的代码时,可以使用“如下代码”或者“以下内容”这种说法。例如:
- 正确的表达:请查看以下代码,看看有没有下标越界的风险。
- 错误的表达:请检查选中的代码是否有下标越界的风险。(模型无法知道你选的是哪段代码)
7.2 提供更多背景信息
在命令后面加上一些额外的信息,可以为问答提供更多的上下文,这样更容易得到你想要的回答。


7.3 多轮对话生成代码
在和大语言模型对话时,提供的上下文越多,得到的结果就越符合你的期望。因此,你可以在上一轮对话的基础上继续提问,这样后续的问题背景会更丰富,生成的结果也会更贴合整个对话的历史。不过,偶尔也会出现之前的信息干扰这种情况,这时你可以适当清空上下文。

在前一次对话的基础上继续追问。

7.4 提供参考示例
如果你希望模型按照特定格式输出,或者遵循某些前置规则,给出一个参考示例往往会更有效。比如说,你有一个程序的运行结果文件,可以让通义灵码整理成指定的 JSON 结构文档。首先打开文件,选择所有问题内容,然后在问答区域提问。看看下面两种提示,后者能更稳定地输出你预期的数据格式。
- 提示词 1:请将测试报告整理成 JSON 格式,每个测试结果用一个 JSON 结构表示,用例名称放在 name 字段,成功与否放在 success 字段,运行时间放在 duration 字段(单位是毫秒),测试覆盖率放在 coverage 字段,detail 字段的值是一个 JSON,其中包含每次用例的输入和输出。
- 提示词 2:请将测试报告整理成 JSON 格式,如下输入报告:
…报告内容略…
应输出的数据为:
[ { “name”: “超出有效页码范围时,应返回空列表并提示无更多数据”, “duration”: 3434, “coverage”: 80, “detail”: [ { “input”: “…”, “output”: “…” }] }]
请以此为例,生成测试报告。
7.5 为模型设定角色
给模型设定身份信息,往往能有效提升生成结果的稳定性和准确性,这比单纯提问要好很多。
测试用例生成的小窍门,让我们一起看看!
想要生成测试用例吗?那就先打开接口文档,把里面的内容全部选中,然后在问答区域提问。这里有两个不同的提示词,后面那个能帮你生成更高质量、更全面的测试用例哦。
- 提示词 1:请根据下面的接口文档生成测试用例。
- 提示词 2:你是一位经验丰富的测试工程师,特别注重细节,能够迅速发现潜在问题和边界情况。请根据以下接口文档生成详尽的测试用例,确保所有预期功能都得到验证。
小提示:高质量的提示词通常需要输入更多的内容,所以这些技巧特别适合搭配即将推出的自定义提示词功能。现在可以先手动输入,或者复制提问模板到问题框里再进行编辑。
想尝试一下吗?点击下面的链接,下载并使用通义灵码吧!
https://tongyi.aliyun.com/lingma/










通义灵码真是太强大了,支持这么多编程语言,开发者的福音!
下载量超过470万,这样的热度是怎么来的?开发者们对这个工具都有什么样的反馈?
希望能在未来的版本中加入更多的代码审查功能,提升团队协作的效率。
能支持200多种编程语言,这个功能太赞了!开发者们有福了。
这个工具能帮助生成3000万行代码,每天都在想象这背后的计算量!
用通义灵码生成的代码,有时能让我想起当年用自动化工具的乐趣,真是怀旧。
看到它支持200多种编程语言,真想知道开发者们是怎么快速上手的,有没有使用技巧?
听说这个工具能支持私有知识库,具体怎么操作?企业用户有没有分享经验?
使用通义灵码时,设置快捷键的步骤听起来挺复杂的,能不能做得更简单点呢?
使用通义灵码时,设置快捷键的灵活性让我想起自定义编辑器的乐趣,真希望能有更多的创意配置。
通义灵码的多功能性确实让人印象深刻,尤其是它的代码优化和智能问答功能,能大大提升工作效率。
听说它的下载量已经超过470万,真是个热门工具,大家都在用吗?