【问题标题】:How does RStudio determine the console width, and why does it seem to be getting it consistently wrong?RStudio 如何确定控制台宽度,为什么它似乎总是出错?
【发布时间】:2016-02-09 03:06:32
【问题描述】:

我刚刚在 RStudio 中发现了wid <- options()$width,它似乎是我日常控制台使用中很多烦恼的根源(或者更确切地说,更接近根源)。我应该提前说,我目前使用的是 R 3.2.2、RStudio 0.99.491、Linux Mint 17.3(基于 Ubuntu 14.04.3 LTS 构建)

据我了解,wid 应该以字符为单位来衡量——如果wid 等于 52,比如说,那么一个人应该能够在屏幕上显示两次字母表(给定固定宽度的默认字体) ),但情况似乎并非如此:

如您所见,尽管 wid 等于 52,但我无法将字母表填入两次——我想出了 6 个字符。我还注意到,这意味着它不是仅仅因为存在命令提示符箭头和空格 (> )。

这个问题似乎有点成比例——如果我的wid 最多为 78 个,我只能容纳 70 个字符;最多 104、93,所以wid 的折扣相当一致,约为 88%(旁注:这也表明我的假设 wid 以字符为单位可能是正确的)。

这带来的问题是控制台输出经常溢出超出预期的行,使输出变得丑陋且难以消化;举个例子,简单的剪断setDT(lapply(1:30, function(x) 1:3))[] 为我生成:

我似乎很清楚,尝试在实际不可用的屏幕宽度上进行输出 - 在内部,用于打印的屏幕宽度大于实际存在的宽度。

这给我留下了三个问题:

  1. options()$width 是如何确定的?
  2. 为什么总是出错?
  3. 我们可以做些什么来覆盖这个错误?

【问题讨论】:

    标签: r rstudio


    【解决方案1】:

    找到了post about this on Rstudio support,问题似乎与高 DPI 显示器有关;根据release notes 的说法,RStudio version 0.99.878 中有一个声称的错误修复(今天才发布!幸运的是):

    错误修复

    ...

    • 在高 DPI 显示器上正确计算 getOption(“width”)

    希望这可以帮助其他遇到这种情况的人!我很想在/r/oddlysatisfying B-) 上发帖讨论这个问题

    如果有人能找到它,我很想在RStudio GitHub 页面上看到相关的提交(我没有运气)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 2012-06-09
      • 2012-06-29
      • 2019-02-05
      • 2015-08-23
      • 2021-10-05
      相关资源
      最近更新 更多