簡體   English   中英

是否可以使用Sublime文本2處理R-markdown文件?

[英]Is it possible to use Sublime text 2 to work in with R-markdown-files?

我最近發現您可以很好地使用R-markdown(.Rmd)文件。 由於我喜歡將所有工作都放在Sublime text 2中,因此很高興找到此軟件包 盡管發給R的工作非常不錯,這要歸功於這篇文章 ,出於某種原因,sublime無法編譯我的markdown文件。 在strg + shift + b而不是.md文件之后,出現此錯誤:

Traceback (most recent call last):
  File ".\sublime_plugin.py", line 337, in run_
  File ".\exec.py", line 154, in run
TypeError: __init__() got an unexpected keyword argument 'shell_cmd'

測試文件具有以下形式

% Test document

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do `eiusmod` tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.

```{r example_chunk, fig.width=5, fig.height=3}
x <- rnorm(100)
y <- rnorm(100)
plot(y ~ x, pch=20)
``` 

我使用python 2.7。 並安裝了knitr的所有依賴項。

該軟件包中的構建系統包含與Sublime Text 2不兼容的Run變體,這就是導致您出現問題的原因。 這似乎是軟件包作者的疏忽,因此可能值得提交錯誤報告。

同時,您可以通過修改構建文件來自行解決問題。 如果打開Packages\\SublimeKnitr\\knitr-Markdown.sublime-build (如果未手動安裝插件,請使用PackageResourceViewer ),您將看到以下內容:

{
  "selector": "text.html.markdown.knitr",
  "working_dir": "${project_path:${folder}}",
  "env": { "LANG": "en_US.UTF-8" },
  "cmd": [ "Rscript -e \"library(knitr); knit('$file', output='$file_path/$file_base_name.md')\"" ],
  "shell": true,

  "variants":
  [
    {
      "name": "Run",
      "working_dir": "$file_path",
      "shell_cmd": "Rscript -e \"rmarkdown::render(input = '$file')\""
    }
  ]
}

問題是Sublime Text 2不支持shell_cmd (這似乎是Sublime Text 3的附加功能)。 主版本使用cmd並將shell設置為true來運行該shell,這是在Sublime Text 2中進行此操作的正確方法。

如果通過將shell_cmd更改為cmd並將字符串參數包裝在方括號中並包括外殼線來修改變體,則:

"cmd": [ "Rscript -e \"rmarkdown::render(input = '$file')\"" ],
"shell": true

它應該為您工作。 請注意,構建文件是JSON,因此,所有內容都必須以逗號分隔,這一點很重要。

此處可能不需要添加"shell": true部分。 它可能會在構建的早期保留下來。 我不熟悉Sublime Text 2的處理方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM