在JSON的值内包含双引号的问题
为了能够一键用Autocad运行sublime text内编辑的lisp文件,我设置sublime text的sublime-build时,如下:
{
"cmd": ["cmd", "/c","echo (load ${file_base_name})>load.scr" , "&&" , "cmd", "/c", "acad", "/b" , "${file_path}/load.scr"],
"working_dir": "${file_path}",
"selector": "source.lsp",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)"
}
大意是:
先在文件目录下创建一个load.scr(Autocad的脚本文件),为了能够让Autocad打开时能够自动加载当前lsp文件(这似乎有点绕,但是这是我唯一知道的能够在cmd打开autocad并且附带参数的方法)
其中load.scr文件的正确内容应该为
(load "xxx.lsp")
这里load后面的文件名包含了双引号,但是直接在上面加上双引号不符合JSON的规范导致sublime text运行不能,如下(注意${file_base_name}外面加了一对双括号):
{
"cmd": ["cmd", "/c","echo (load "${file_base_name}")>load.scr" , "&&" , "cmd", "/c", "acad", "/b" , "${file_path}/load.scr"],
......
}
之后用转义符/",发现sublime text可以运行,但是在load.scr里面却变成了:
(load \"xxx.lsp\")
多了两个尴尬的
\
,导致在autocad里面不能成功加载
不知道有没有办法,能够解决这个双引号转义的问题,谢谢!
json cmd sublime-text dos lisp
D.boy
10 years ago