如何在WSL环境中通过better_errors的x-mine链接唤起编辑器
实现步骤
你需要在Windows端注册x-mine自定义URL协议,同时完成WSL路径到Windows路径的转换,具体操作如下:
1. 编写协议处理脚本
首先创建PowerShell脚本用来解析URL参数、转换路径、启动编辑器,在Windows本地新建XmineHandler.ps1文件,存到固定路径比如C:\Users\你的用户名\Scripts\下,脚本内容如下:
# 解析URL参数 Add-Type -AssemblyName System.Web $url = $args[0] $query = [System.Web.HttpUtility]::ParseQueryString($url.Split('?')[1]) $wslFilePath = [System.Web.HttpUtility]::UrlDecode($query['file']) $lineNum = $query['line'] # WSL Linux路径转Windows可识别路径 $winFilePath = wsl wslpath -w $wslFilePath # 启动编辑器,以下二选一,不需要的注释掉 # 选项1:VS Code用户使用 code --goto "$winFilePath:$lineNum" # 选项2:RubyMine/JetBrains系IDE用户使用,替换为你本地IDE的exe路径 # "C:\Program Files\JetBrains\RubyMine 2023.2\bin\rubymine64.exe" --line $lineNum $winFilePath
2. 注册x-mine自定义协议
需要修改注册表关联x-mine开头的链接到上面的处理脚本,新建x_mine_reg.reg文件,内容如下:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\x-mine] @="URL:x-mine Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\x-mine\shell] [HKEY_CLASSES_ROOT\x-mine\shell\open] [HKEY_CLASSES_ROOT\x-mine\shell\open\command] @="powershell.exe -ExecutionPolicy Bypass -File \"C:\\Users\\你的用户名\\Scripts\\XmineHandler.ps1\" \"%1\""
注意把上面的脚本路径替换为你实际存放XmineHandler.ps1的路径,路径中的反斜杠要转义为双反斜杠。保存后双击这个reg文件,确认导入注册表。
3. 功能测试
你可以直接在Windows运行窗口(Win+R)粘贴你的示例链接测试:
x-mine://open?file=%2Fhome%2Fironsand%2Fdev%2Fmyapp%2Fapp%2Fcontrollers%2Fcompanies_controller.rb&line=12
如果能正常唤起编辑器打开对应文件和行号,就说明配置成功,之后点击better_errors页面的路径就可以直接跳转了。
常见问题排查
- 如果路径转换失败,确认你的WSL发行版是默认发行版,可以用
wsl -l查看,wsl --set-default 发行版名设置默认 - 如果编辑器没有启动,确认脚本中写的编辑器路径正确,或者把编辑器的可执行文件路径加入系统环境变量
内容的提问来源于stack exchange,提问作者ironsand
相关产品推荐
相关产品推荐

