我正试图在崇高文本3中创建我自己的sublime-build,因为默认的knitr包构建(https://sublime.wbond.net/packages/knitr)不起作用(对我来说)。我对knitr包中的一个做了如下修改:
{
"selector": "text.html.markdown.knitr",
"working_dir": "${project_path:${folder}}",
"cmd": ["Rscript", "-e", "library(knitr); knit('$file')" ],
"shell": true
}但是得到错误:
Error: '\G' is an unrecognized escape in character string starting "'C:\G"
Execution halted
[Finished in 0.4s with exit code 1]
[cmd: ['Rscript', '-e', "library(knitr); knit('C:\\GitHub\\Projects\\test\\testLaTeXing\\knitrRmd\\testRmd.Rmd')"]]显然,有些windows路径转义问题,但当我想动态访问文件路径时,如何解决这个问题?
我在做windows7。
发布于 2013-12-25 14:33:24
感谢@MattDMo,这是我最后做出来的。
{
"selector": "text.html.markdown.knitr",
"working_dir": "${project_path:${folder}}",
"cmd": [ "Rscript -e \"library(knitr); knit('$file', output='$file_path/$file_base_name.md')\"" ],
"shell": true,
"windows":
{
"selector": "text.html.markdown.knitr",
// "working_dir": "${project_path:${folder}}",
// "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"cmd": ["Rscript", "-e", "library(knitr); knit('${file/\\\\/\\/\/g}', output='${file_path/\\\\/\\/\/g}/$file_base_name.md' )" ],
"shell": true
}
}其中,默认命令来自针织崇高包(https://github.com/andrewheiss/SublimeKnitr/blob/master/knitr-Markdown.sublime-build)。
发布于 2013-12-24 04:55:22
尝试将您的"cmd"行设置为:
"cmd": ["Rscript", "-e", "library(knitr); knit('${file/\\\\/\//}')" ],基本上,匹配两个\字符并将它们替换为一个/字符是一个正则表达式。每个\和/都需要通过一个\来转义,这就造成了鸡皮疙瘩。
我不是在Windows上进行测试,但理论上这应该是可行的。如果没有,另一个选择是
"cmd": ["Rscript", "-e", "library(knitr); knit('${file/\\\\/\\/}')" ],在这里,它要用一个单一的\\替换\。
请让我知道它是如何工作的,我有兴趣知道!
https://stackoverflow.com/questions/20752890
复制相似问题