我正在编写一个显示bash命令和R命令的.Rmd
文件。有没有办法区分具有R代码的块与具有bash代码的块?有一个knitr chunk选项可以将R命令提示符插入一个块中,以便
```{R, prompt = "true"}
plot(rnorm(100))
```
变为
> plot(rnorm(100))
但对于bash块这个
```{bash, prompt = "true"}
pandoc --version
```
变成这个
> pandoc --version
当我更喜欢这个时
$ pandoc --version
答案 0 :(得分:6)
你可以尝试一个简单的钩子:
---
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
```
您可以添加opts_chunk$set(prompt=TRUE)
,这样您就不必为每个块继续编写prompt=TRUE
答案 1 :(得分:2)
这有点笨重,但我才意识到我可以“切换”提示这样做:
```{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
> plot(rnorm(100))