我正在尝试这样做,以便我可以单击 xdebug 输出的链接并打开有问题的文件,例如 textmate 中的问题,我试图在 windows xp 上使用 ST2 执行此操作。
我尝试使用SublimeProtocol插件来完成此任务,但它期望打开文件的链接格式如下:
sblm:///C/Users/name/AppData/Roaming/Sublime%20Text%202/Packages/
xdebug.file_link_format 是:
xdebug.file_link_format="sblm://%f?%l"
它输出这种类型的链接:sblm://C:\wamp\www\busadv\parse3.php?10
所以ST2的控制台提示无法打开文件。
然后我尝试基于 SO 问题创建自定义协议创建自定义协议 ,因为这似乎符合我想要完成的目标。我使用以下内容创建了一个 reg 文件:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\sblm]
@="\"URL:sblm Protocol\""
"EditFlags"=hex:02,00,00,00
"URL Protocol"=""
[HKEY_CLASSES_ROOT\sblm\DefaultIcon]
@="\"C:\\Program Files\\Sublime Text 2\\sublime_text.exe\",0"
[HKEY_CLASSES_ROOT\sblm\shell]
[HKEY_CLASSES_ROOT\sblm\shell\open]
[HKEY_CLASSES_ROOT\sblm\shell\open\command]
@="\"C:\\Program Files\\Sublime Text 2\\sublime_text.exe\" -c \"%1\""
问题是,当我单击 xdebug 的链接输出时,一个文件在ST2中打开的文件只有一个源自浏览器目录的文件,而不是 xdebug 所在的位置。我尝试将 %1 替换为 %2 ,以便文件将 C:\ 之前的部分切掉,但使用该替换时文件永远不会打开。那么为了使它工作还需要什么其他参数呢?
更新:
添加了包含以下内容的批处理文件:
@echo off
setlocal enableextensions enabledelayedexpansion
set SUBLIME=%1
set FILE=%~2
%SUBLIME% --open "%FILE:~19%"
并将注册表更改为包含Windows 和 netbeans建议的 .bat 为:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\sblm]
@="URL:sblm Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\Sublime Text\DefaultIcon]
@="\"C:\\Program Files\\Sublime Text 2\\sublime_text.exe,1\""
[HKEY_CLASSES_ROOT\sblm\shell]
[HKEY_CLASSES_ROOT\sblm\shell\open]
[HKEY_CLASSES_ROOT\sblm\shell\open\command]
@="\"C:\\Windows\\sublime.bat\" \"C:\\Program Files\\Sublime Text 2\\sublime_text.exe\" \%1\""
还将 xdebug.file_link_format 更改为
xdebug.file_link_format="sblm://open/?f=%f:%l"
现在 ST2 仍然打开一个文件,但它来自浏览器目录,其中几乎包含链接但不包括 C:\w。
例如 xdebug 链接 sblm://open/?f=C:\wamp\www\busadv\parse3.php:10
在 ST2 中打开的文件是 C:\Program Files\SRWare Iron\amp\www\busadv\parse3.php