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会比较慢

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐