前言
我的上一篇文章《在大公司工作之后才真正领悟到它真的是宇宙级编辑器》在组内受到广泛好评。小伙伴们也和我交流了一些vscode的使用问题,其中一个问题令我印象深刻。
他在使用我司自研ai编码助手(vscode插件)的时候无法快速选取自己想要的建议,因为我自己有一段时间不在一线编码了,所以对目前火热的提高编码效率的ai插件没什么过多了解
为了具有普遍性,我选择了vscode插件市场的某款ai插件,发现也有上述小伙伴说到的问题,下面记录了具体细节和解决方案
只有空格或者回车等少数按键才可触发ai建议
我的目的是用document获取id为focus-area的元素,按下字母d,结果发现没有任何的ai建议,如下图
通过按下esc键取消vscode提供的代码建议小组件我发现其实是有ai代码建议的
而且确实是我想要的,比vscode内置的代码建议小组准确多了!如下图
问题定位与解决
我尝试继续输入,发现ai建议又没了。
基本可以确定是vscode的内置代码建议小组件优先级较高,覆盖了ai插件的行为。
为什么会这样呢?
按理说代码建议小组件展示它自己的,ai插件展示它自己的,井水不犯河水。
仔细看代码提示小组件会发现它默认选择了第一个代码建议,应该是这个原因。
那么只要让它默认什么都不选中,应该就可以解决。
巧了,我正好知道vscode有这么个配置
1 | js复制代码/* |
如下图,会同时出现代码建议小组件和ai代码建议,按下tab成功输出了ai建议的代码
“完美”!!!
天真的我在多输入一些代码体验的时候就被啪啪打脸,如下图。
我在输入字母d的时候我希望的是调用deep函数,此次是内置建议小组件更加准确。
有人会想这不已经解决了吗,你按下箭头直接选择内置小组件的建议有什么问题?
你真的连一下手指头都不想动吗???那你干脆开发个意念编程,赛博飞升算了!!!
不不不,该动还是要动,但是应该一步到位才对,上图只补全为deep
,应该是ai建议又被覆盖了,直接deep(obj)
才完美。
这种场景应该是内置代码建议与ai建议结合起来才更好。
其实仔细观察会发现,每当焦点移到了内置建议小组件选项的时候,编辑器上那些灰色的建议代码都没有了,如果取消了这个行为应该就能解决这个问题。
巧了,我正好知道vscode有这么个配置
1 | js复制代码// 控制是否在编辑器中预览建议结果 |
哈哈,”完美解决”,如下图
然后当我按下tab的时候傻眼了,如下图。
清清楚楚的写着使用tab接受建议啊,实际效果好像是接受了内置小组件的建议
于是我直接找到vscode的快捷键配置界面,没有问题啊
难道是因为快捷键冲突?我尝试改为了其他快捷键,均没有作用。后来又折腾半天都没有解决。
去卫生间时,看到一个人满身疲惫,眼里没有光,丝毫没有xx范!噢,原来那是我啊o( ̄︶ ̄)o
晚上回家躺在床上突然想起了这个问题还没解决,虽然理想很美好,但是vscode及ai建议插件都不是我开发的,我又能如何呢?
偏头看向窗外,我不过就像点点繁星中的某颗毫不起眼的一员罢了,哪能散发极致的光与热,有什么用?
……对啊,有什么用?我改为了其他快捷键有什么用?
没用!即有用!说明不是快捷键被占用,而是快捷键根本没生效。
我记得之前好像看到这个快捷键有很长的when表达式,是不是这些限制条件导致不生效?
我直接跳下床,去查看这个快捷键的具体信息,果然发现了根本原因,如下图。
tab生效的其中一条限制就是!suggestWidgetVisible
,翻译过来就是不能有建议小组件
所以解决方案就是去除这条限制,在键盘配置文件里添加如下配置
1 | js复制代码{ |
效果如下,tab即可接受ai建议,如果就想用建议小组件的代码,按下enter就行
更多示例,个人觉得ai建议比内置建议小组件更加准确,内容更多
总结
简单体验了下,发现这款插件挺好用的,也无需什么配置。所有人都可以下载使用,免费,不会出现与付费用户的区别对待。不限于vscode及webstorm的多平台支持等
为了避免打广告的嫌疑,就不具体透露了。
如果读者朋友对ai编码插件感兴趣的话可以在评论区里交流学习。合适的话我会把有用的信息补充到这篇文章里
可能有人会觉得,就一编辑器,至于吗?
当我做完这一切。走到阳台,看着那片璀璨的星空,我终于明白了,那理由便是所有生命与生俱来被赋予的能力——为了所爱之物竭尽所能!
请陪我一同仰望这片星空吧。
本文转载自: 掘金