vscode使用通义灵码等AI插件对接WSL环境进行迭代
本文介绍了在VSCode+WSL开发环境中优化AI插件与WSL交互的配置方案。针对当前AI插件直接对接WSL终端时出现的稳定性问题,提出通过PowerShell作为中介的方案:AI插件→PowerShell→WSL。详细配置步骤包括:1)启用WSL2所需系统功能;2)设置WSL发行版;3)配置VSCode默认使用PowerShell终端;4)手动配置Shell集成;5)为AI插件设置执行规则。最终
AI插件的烦恼
相信很多人编码是在windows里用vscode+wsl环境来做coding的,vscode负责编辑、阅读,wsl负责编译、测试、git管理。引入AI插件之后,编辑侧发生了变化,经常需要使用AI插件进行添加、修改代码,就目前而言,AI插件进行比较复杂的修改时,基本上100%是有问题。所以让AI插件能够自己迭代起来就特别重要,但是目前vscode的wsl终端shell集成有很大的问题,即便集成成功输出也不稳定,比如灵码,对接wsl终端时几个迭代下来会拉起一堆终端,输出经常会异常,导致迭代中断。
powershell在windows环境中,shell集成效果、输出效果都非常好,因此,我想到一种方式:AI插件 -- powershell终端 -- wsl环境, 用powershell作为中介,建立AI插件和wsl环境的联系,这篇文章主要就是介绍这种能让AI插件能在vscode+wsl环境里能够迭代起来的方式的配置。
电脑基本配置确认
- bios设置,开启虚拟化(vt-x)
- wsl2依赖,开始-搜索"功能"--打开"启用或关闭Windows功能"-- 勾选
- Hyper-v(目测不打开wsl2的发行版安装不了)
- 虚拟化平台,或者叫Virtual Machine Platform
- 适用于Linux的Windows子系统
wsl升级、安装发行版(可选,已经有的,后面进行升级就可以)
- 打开cmd执行:wsl --update
- windows store安装wsl2发行版推荐 Ubuntu 22.04
设置发行版本为wsl2
wsl --set-version <Ubuntu-22.04> 2 # 如果原来是wsl1,这个操作可能需要一段时间 wsl --set-default <Ubuntu-22.04> # 将这个发行版设置为默认的
登录wsl时自动切换到root(可选)
- 执行sudo visudo, 输入当前用户密码(如果需要的话), 增加当前用户免密,比如
curruser ALL=(ALL) NOPASSWD:ALL
- 登录当前用户在~/.bashrc里加入以下信息
if [ "$(id -u)" -ne 0 ]; then sudo -i; fi
vscode终端配置
- 扩展里搜索powershell,安装powershell
- ctrl+shift+p, 输入terminal: select default profile, 选择pwsh; 或者直接在终端+里选择默认
- ctrl+shift+p, 输入terminal: create,拉起一个新的终端
- 在终端里执行Set-ExecutionPolicy RemoteSigned开启权限
- 在pwsh终端里执行code --version,查看vscode版本
- 如果code命令无法识别,大概率是vscode是系统安装,没有加入到用户的PATH中
- 查看自己的vscode安装路径,打开环境变量,在用户环境变量里加入C:\Program Files\Microsoft VS Code\bin
- pwsh终端里执行code $Profile打开pwsh的配置文件,添加以下内容, 这是手动shell集成的方式
if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --locate-shell-integration-path pwsh)" }
- 打开setting.json,关闭自动shell集成: "terminal.integrated.shellIntegration.enabled": false
- 设置完,重新打开终端,鼠标移到终端标签上,看"Shell集成"是否被激活,可能是"基本"或者"丰富"就ok
安装AI插件,并配置规则(阿里的lingma为例)
- 点击用户--个人设置--规则--添加--始终生效
- 随便添加个规则,然后填写规则,主要是让插件知道环境是pwsh+wsl,执行命令采用linux命令,并且通过wsl转义
--- trigger: always_on --- # 编码环境配置 ## 终端 1. 终端整体采用pwsh对接wsl 2. 终端执行的所有命令要用linux命令 3. 终端执行的所有命令都必须采用格式: wsl -u root bash -i -c "<command>" 4. 尽可能在当前终端执行命令,避免拉起新的终端
测试
- 让ai拉起终端执行命令,查看终端命令是否正常执行,返回内容是否符合预期
- 如果ok,就可以让ai组件跟wsl终端联动起来自动调试代码进行迭代啦~~
比如写一个简单的页面,整个过程自主迭代,不用反复贴错误询问,效率更高
滚动安装依赖,等待安装结果
检测到部分依赖没安装,重新安装;检测到使用的是python3,最后拉起服务
建议
要打开一个Ubuntu窗口,主要用于手动操作,同时也让wsl一直保持running状态,否则pwsh执行wsl命令,每次都要拉起wsl会比较慢
更多推荐
所有评论(0)