如果文件路径中包含空格,则向崇高文本 3 菜单项添加 URL 不起作用。如何在 ST3 中转义文本?



我不知道如何以简洁的方式表达这一点,所以这里是复杂的方式。 显然,我正在玩弄并尝试自定义Sublime Text 3。我想我应该尽快解决这个问题。;)

无论如何,我遇到了一个示例,该示例允许您将菜单项添加到本质上是 URL 的 ST3 菜单列表中。 我将其添加到"帮助"菜单中。

代码片段:

{
"caption": "Help",
"mnemonic": "H",
"id": "help",
"children": [
{
"command": "open_url",
"caption": "Twitter",
"args": {"url": "https://twitter.com/WhatsTrending"}
},
],
},

然后,我想,如果它也可以打开一些本地文件不是很酷吗,所以然后我添加了这个:

{ 
"caption" : "Local File",
"command" : "open_url",
"args" : { "url": "file:///Users/<username>/me.html" },
},

令我惊讶的是,它奏效了!它在浏览器中打开了本地文件,所以我很兴奋,并认为由于保存 ST3 的任何自定义项的位置"~/Library/Application Support/Sublime Text 3/Packages/User"我想我会将本地 html 文件保存在那里。所以现在我添加了这个:

{
"caption":"ST3 Custom File",
"command" : "open_url",
"args": {"url": "file:///Users/<username>/Library/Application Support/Sublime Text 3/Packages/User/me.html"}
},
},

我期待工作,但没有,所以我很困惑。我的猜测是路径中的空格需要转义,但我尝试的一切都失败了,有谁知道如何正确逃脱它?

显然,这样做"file:///Users/<username>/Library/Application Support/Sublime Text 3/Packages/User/me.html"不起作用,因为不会计算或插值字符串。

当然,在发布 30 分钟后,我尝试了一些最终有效的东西。 由于我想不出其他任何东西,我尝试了 URL 编码,实际上最终有效。我所要做的就是将" "(空格)替换为" %20"和中提琴!它按预期工作。

所以最后一个,现在看起来像这样:

{
"caption":"ST3 Custom File",
"command" : "open_url",
"args": {"url": "file:///Users/<username>/Library/Application%20Support/Sublime%20Text%203/Packages/User/me.html"}
},

它 ST3 确实在默认浏览器中打开 html 文件。 无论如何,我希望这对某人有所帮助。

最新更新