vim - 使用 GNU Screen 使用 Vim 到 R 执行超出原始屏幕视图的代码
问题描述
我正在使用 GNU Screen 使用以下 .vimrc 配置将代码从 Vim 发送到 R:
map <C-L> "kyy:echo system("screen -S $STY -p R -X stuff ".shellescape(@k))<CR>j
vmap <C-L> "xy:echo system("screen -S $STY -p R -X stuff ".shellescape(@x."\n"))<CR>j
(我使用 cntr-L 将代码从 Vim 发送到标题为“R”的 R 窗口。)
我可以在当前屏幕内运行函数,
exp_val <- function(roll){
vals <- numeric(length(roll))
vals[roll == "G"] <- 1/6
vals[roll == "Y"] <- 1/3
vals[roll == "R"] <- 1/2
sum(vals)
}
prob_choice <- function(roll, ng = 6, ny = 4, nr = 3){
tot <- ng + ny + nr
i <- c(ng,ny,nr)
col <- c("G","Y","R")
p1 <- i[col==roll[1]]/tot
i[col==roll[1]] <- i[col==roll[1]] - 1
p2 <- i[col==roll[2]]/(tot-1)
i[col==roll[2]] <- i[col==roll[2]] - 1
p3 <- i[col==roll[3]]/(tot-2)
p1*p2*p3
}
但是当我尝试向下滚动并突出显示在原始屏幕视图下方延伸的另一个功能时
single_round <- function(sampsp,probs=rep(1/nrow(sampsp),nrow(sampsp))){
r <- sample(1:nrow(sampsp),1,prob = probs)
dice <- sampsp[r,]
roll <- numeric(3)
i <- which(dice=="G"); roll[i] <- sample(c("B","S","F"),1,prob = c(1/2,1/6,1/3))
j <- which(dice=="Y"); roll[j] <- sample(c("B","S","F"),1,prob = c(1/3,1/3,1/3))
k <- which(dice=="R"); roll[k] <- sample(c("B","S","F"),1,prob = c(1/6,1/2,1/3))
num_dice <- c(length(i),length(j),length(k))
outcome <- c(sum(roll=="B"),sum(roll=="S"),sum(roll=="F"))
if (is.null(roll[i])){roll[i] <- 0}
if (is.null(roll[j])){roll[j] <- 0}
if (is.null(roll[k])){roll[k] <- 0}
feet <- c(sum(roll[i]=="F"),sum(roll[j]=="F"),sum(roll[k]=="F")) # to keep track of color of footprints
list(num_dice,outcome,feet)
}
我收到以下错误
X: stuff: one or two arguments required
我可以在 .vimrc 中更改什么,以便突出显示并执行超出原始屏幕视图的大部分脚本吗?
解决方案
推荐阅读
- mysql - 有多少设备以相同的用户和密码同时登录[颤振]
- xcode - ITMS 90433 上传应用程序错误:Xcode 12.4
- r - 传递了一个不是字符串的文件名!(RMarkdown)
- android - android中底部导航栏的顶部边框
- javascript - 用新元素包装一部分innerHTML
- c# - MS-Graph-SDK 无法将文件夹添加到云端硬盘
- java - 我可以用什么代替 hbaseTemplate.find(TableName,Scan,ROwMapper)?
- python - 如何从文本文件的 URL 中获取特定的文本块?
- python - 如何从python将'a {sv}' dbus签名传递给udisks2.Mount()?
- java - 使用 Ajax 请求时出现 HttpMediaTypeNotSupportedException