Closed WenruiWu1996 closed 1 year ago
我在windows上和linux上都可以打工别的路径。
你说的情况可重复?
另外你说的预览图片这个,ggimage::ggpreview
函数能干这事,也是我写的。
可以重复,我尝试打开当前目录下的R文件夹:
如果是o("R"),会直接启动Rterm;
但如果是o("R/"),会提示错误“ Windows找不到文件'....\R/' ”,应该是Windows路径的问题
另外你说的预览图片这个,
ggimage::ggpreview
函数能干这事,也是我写的。
好的,谢谢Y叔,我去学习一下哈
那是你不懂windows。路径分隔符不是这样写的。
不过这个PR,倒是可以合并,normalizePath干的不单是换成绝对路径,还让windows兼容linux的路径分隔符(其实是做了个替换)。
PS:我当前还是不能merge,因为你没有经过测试。
比如如果是rserver的,你这个commit是否能work。有潜在的风险。需要所有情况都测试了,才能说服我。
那是你不懂windows。路径分隔符不是这样写的。
明白,这个我当时确实没有留意到这个问题,Windows里面应该用"\\"。
改成:o("R\\"),这个函数就没有问题了,但是这样在Rstudio里面就不能直接tab自动填充路径了,需要手动写"\\",但最后会因为自动填充出现"R\\a/"这样的路径,需要手动删除。
PS:我当前还是不能merge,因为你没有经过测试。
比如如果是rserver的,你这个commit是否能work。有潜在的风险。需要所有情况都测试了,才能说服我。
我在rserver里面分别测试了:
1、使用utils::browseURL()打开txt、csv、png文件(在网页打开),xlsx文件(下载) 2、使用file.edit()打开txt、csv文件(在Rstudio的source中打开)
这几个都没有问题,但是linux和Darwin我就没办法测试了
Y叔好,之前我一直都有一边处理数据,一边把中间数据用excel打开来看的习惯(比如特别长的文本在R里面就不太方便查看),或者是在保存图片前先打开看看(调图片的比例),因此写了很多preview_*的函数,比如:
preview_gg <- function(plot, width = 6, height = 4, ext = "png", ...) { fname <- tempfile(fileext = paste0(".", ext)) ggplot2::ggsave( filename = fname, plot = plot, height = height, width = width, ... ) utils::browseURL(fname) invisible(NULL) }
所以当我顺着您最近的推文《加载包顺道把包给安装了》翻到了过去的《在Excel里瞄一瞄你的数据吧》时,感到特别的亲切。而在看到o()这个函数的时候,感觉非常的敬佩,开发者把很多情况都考虑到了,实现了文件打开的大一统。我一开始只在Windows里面预览文件,所以用的是system(paste("open", fname)),后面需要在Rserver上面预览,就改成了utils::browseURL(fname),没想到还有这么多情况没有考虑到,学习了。
这次也是在玩o()的时候,发现没办法打开工作目录以外的其他路径,因此尝试写了人生中的第一个pull request。但是我只在Windows上面测试过,不知道其他系统的情况。