2016-08-18 9 views
4

私は.Rmdというファイルを書き、bashコマンドとRコマンドの両方を表示しています。 Rコードを持つチャンクとbashコードを持つチャンクを区別する方法はありますか?多言語のknitr/RMarkdown文書のプロンプトを変更する

```{R, prompt = "true"} 
plot(rnorm(100)) 
``` 

> plot(rnorm(100)) 

なるが、bashのチャンクのために、この

```{bash, prompt = "true"} 
pandoc --version 
``` 

この

> pandoc --version 
となるように、チャンクにRコマンドプロンプトを挿入knitrチャンクのオプションがあります

私がpするとき

$ pandoc --version 
> plot(rnorm(100)) 

答えて

6

あなたは、単純なフックを試みることができます

```{r, echo = F} 
options(prompt = "$ ") 
``` 

```{bash, eval = F, prompt = T} 
pandoc --version 
``` 

```{r, echo = F} 
options(prompt = "> ") 
``` 

```{r, eval = F, prompt = T} 
plot(rnorm(100)) 
``` 

:それは少し不格好だが、私はちょうど私が「トグル」プロンプトがこれを行うことができて実現この

$ pandoc --version 
+0

ためprompt=TRUEを書いておく必要はありませんopts_chunk$set(prompt=TRUE)を追加することができます。私は今までそれらを酔わせていなかった。 –

1

を参照してください。

--- 
output: html_document 
--- 

```{r} 
library('knitr') 
knit_hooks$set(
    prompt = function(before, options, envir) { 
    options(prompt = if (options$engine %in% c('sh','bash')) '$ ' else 'R> ') 
}) 
``` 

```{r, prompt=TRUE} 
1+1 
``` 

but for the bash chunks this 

```{bash, prompt=TRUE} 
pandoc --version | head -1 
``` 

```{r, prompt=TRUE} 
1+1 
``` 

enter image description here

そして、あなたはあなたがこれはknitrフックを使用する方法の本当に良い例であるすべてのチャンク

関連する問題