Rstudio 更有意义的窗口标题

2024-05-27

我在 Ubuntu (16.04) 下使用 R studio (版本 1.0.143),窗口标题仅显示一个非常无信息的“RStudio”。

我希望至少有当前选项卡的名称,或者最好是与此选项卡对应的文件的完整路径。在 Windows 下,完整路径似乎出现在窗口标题中。

这对于在窗口之间导航可能很有用,但我的主要用途是用于跟踪每个软件所花费的时间的软件(例如arbtt)。目前我只能知道我上周在 R studio 里花了 20 个小时,但我想知道在哪些文件/项目中。


之后有一个部分解决方案,但如果有人知道如何获取当前选项卡的完整名称和路径,我仍然感兴趣。


基于@Spacedman回复,我现在可以通过添加以下行来获取窗口标题中的工作目录路径(但不是脚本名称)/usr/lib/R/etc/Rprofile.site安装后wmctrl :

RStudio_title <- function(...){system(paste0('wmctrl -r "RStudio" -N "RStudio - @ ', getwd(), '"')) ; TRUE}
addTaskCallback(RStudio_title, data = NULL, name = character())

一个问题是,如果您已经打开了一个标题中包含“rstudio”(不区分大小写)的窗口(例如在 Web 浏览器中),则该窗口将收到新标题,而不是 Rstudio 窗口。有一个-F选项使窗口标题与提供的标题严格相同。我尝试首先将 RStudio 标题修改为不太可能出现在另一个窗口中的标题,方法是将其添加到Rprofile.site :

system('wmctrl -F -r "RStudio" -N "RStudio - @ "')

问题是systemRprofile.site 中的 R 函数调用似乎被 Rstudio 忽略(虽然它是从 rstudio 外部调用的 R 工作的)


事实上,system来自 Rprofile.site 的命令不会被忽略。它已执行,但由于任何原因,输出未显示在 Rstudio R 控制台中(例如,如果您键入system("echo 'Hello World'"))。请参阅中的讨论这个问题 https://stackoverflow.com/questions/45185979/rstudio-does-not-execute-system-commands-from-rprofile-site
原因是system('wmctrl -F -r "RStudio" -N "RStudio - @ "')不起作用可能是在执行此命令时(当 Rprofile.site 由 R 提供时),RStudio 窗口尚不存在......

这就是我现在所做的,包括来自 @Spacedman 的提案(即使用十六进制 ID 和if(interactive()))。即使已经打开了另一个标题中带有“RStudio”的窗口,它也能正常工作。如果您从 Rstudio 重新启动 R,它也可以工作。如果你执行它将会被破坏(带有一条消息)rm(list=ls())(我个人从不这样做,我更喜欢重新启动 R)

if(interactive()) {
    # function to capture the hexadecimal ID of the R studio window
    RStudio_ID <- function(...) {
        Rstudio_wmctrl_ID <<- system("wmctrl -l | grep 'N/A RStudio' | sed -r 's/\\s.*//'", 
            intern = TRUE); FALSE
    }
    # execute last function only once after the first completed top-level task 
    # (because the output of that function is FALSE)
    addTaskCallback(RStudio_ID, data = NULL, name = character())

    # function that will change the Rstudio window title
    RStudio_title <- function(...){system(paste0('wmctrl -i -r ', Rstudio_wmctrl_ID, 
        ' -N "RStudio - @ ', getwd(), '"')) ; TRUE}

    # this function is executed after every completed top-level task
    addTaskCallback(RStudio_title, data = NULL, name = character())
}

Install wmctrl然后你可以将“Calculator”的标题更改为“Fnord”,如下所示:

 xcalc &
 wmctrl -r Calculator -N "Fnord"

所以你只需要当前的标题(“RStudio”?)或者它的ID(可以使用wmctrl -l)就这样。

你可以从system在 R 中并粘贴当前工作目录getwd()。您可以将其挂接到 R 中以在每个命令行上执行,至少在普通 R 上,使用addTaskCallback,但也许 RStudio 对此感到困惑。

回调示例:

定义一个函数:

> f = function(...){cat("Hello\n");TRUE}

将其添加到任务回调中:

> addTaskCallback(f, data = NULL, name = character())
1 
1 
Hello

现在 R 在每个命令后都会说“Hello”:

> ls()
[1] "f"
Hello

Change f使用类似的东西设置标题system(paste0("wmctrl ..."))就这样吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rstudio 更有意义的窗口标题 的相关文章

  • 如何使用 R 计算成为列表中中位数的概率?

    假设我有以下数据集 其中显示了假设实验的每个状态的三个观察结果的列表 state lt c Iowa Minnesota Illinois outcome lt list c 5 11 11 c 3 12 8 c 9 14 2 dat lt
  • 当我尝试在 .bashrc 中添加命令时出现命令未找到消息

    我问了一个问题如何在 bash shell 中编写漂亮优雅的 linux 命令 https stackoverflow com q 19720095 80353 当我尝试该建议时 我收到以下错误消息 Sorry command not fo
  • docker repo 解决映像构建期间的错误错误(检查存储库文件)

    我在构建 docker 映像时遇到问题 并尝试了不同的 DNS 选项 但似乎运气不佳 Docker版本1 9 1 构建a34a1d5 回购还活着 为了运行我使用的容器docker run dns 192 168 1 1 d ti name
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • r 中训练和测试数据的最小最大缩放/归一化

    我正在创建一个函数 它将训练集和测试集作为其参数 最小 最大缩放 标准化并返回训练集并使用这些same最小值和最小 最大范围的值 标准化并返回测试集 到目前为止 这是我想出的功能 min max scaling lt function tr
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 如何在 R 或 Python 中制作旭日图?

    到目前为止 我一直无法找到一个可以创建旭日图的 R 库约翰 斯塔斯科 http www cc gatech edu gvu ii sunburst 有人知道如何在 R 或 Python 中实现这一点吗 在极坐标投影中使用 matplotli
  • 将不均匀的层次列表转换为数据框

    我认为还没有有人问过这个问题 但是有没有一种方法可以将具有多个级别和不均匀结构的列表的信息组合成 长 格式的数据帧 具体来说 library XML library plyr xml inning lt http gd2 mlb com c
  • Rabbitmq 忽略 Ubuntu 12 上的配置

    I have rabbitmq server从系统包安装乌班图12 无论我做什么 它似乎都会忽略任何配置文件 网络上的所有内容都表明服务器正在寻找 etc rabbitmq rabbitmq conf 但即使我创建该文件 服务器也报告没有配
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 删除极坐标图边缘的多余空间和圆环

    我有一个极坐标图ggplot2我已经非常接近完成 相当简单的情节 我已经能够在删除矩形边框方面获得帮助 但我不需要删除最后一个范围轮廓与带有方位角标签的绘图周围的环之间的额外空间 我希望该图的边界为 15 000 而不是 15 214 我编
  • SPSS 中的标准化残差与 R rstandard(lm()) 不匹配

    在寻找 R 相关解决方案时 我发现 R 和 SPSS 版本 24 在计算简单线性模型中的标准化残差方面存在一些不一致 看来SPSS所谓的标准化残差匹配 R学生化残差 我完全不认为某处存在软件错误 但显然这两个程序之间存在差异 看看这个例子
  • 实三次多项式的最快数值解?

    R 问题 寻找最快的方法来数值求解一堆已知具有实系数和三个实根的任意三次方程 据报道 R 中的 polyroot 函数对复杂多项式使用 Jenkins Traub 算法 419 但对于实多项式 作者参考了他们早期的工作 对于实三次或更一般的
  • 任意列中包含字符串的子集行

    我有一个如下所示的数据集 Col1 Col2 Col3 abckel NA 7 jdmelw njabc NA 8 jdken jdne 如何对数据集进行子集化 使其仅保留包含字符串 abc 的行 最终预期输出 Col1 Col2 Col3
  • 在 ifelse() 语句内部和外部运行一行时的不同输出

    我正在尝试运行一个简单的命令 但不知道为什么在内部和外部运行它时输出不同ifelse 功能 函数条件评估为FALSE 所以输出应该完全相同 但是 单独运行时 输出为0 0 1 1 0 1 0 1 NA 根据需要 但是从ifelse 函数 输
  • 如何使用 dplyr 独立过滤每列的行

    我有以下内容 library tidyverse df lt tibble tribble gene colB colC a 1 2 b 2 3 c 3 4 d 1 1 df gt A tibble 4 x 3 gt gene colB c

随机推荐

  • 反序列化 HTTP POST 参数

    我正在尝试找到一种更原生或更优雅的解决方案 用于将 HTTP POST 参数反序列化为相应的对象 目前 我将字符串转换为字典 然后将其序列化为 JSON 然后将其反序列化为我的最终对象 参数字符串示例 TotalCost 0 01200 D
  • NoSuchMethodError getChildFragmentManager()

    我正在尝试使用 FragmentPagerAdapter 实现 ViewPager 其中 ViewPager 本身位于片段内 我在文档中读到 使用最新的支持库和使用嵌套片段应该可以实现 主要我希望 PagerAdapter 使用根片段的子片
  • 防止使用后退按钮(在 IE 中)

    所以我现在工作单位的中小企业想尝试禁用某些页面的后退按钮 我们有一个页面 用户可以在其中进行一些选择并将其提交以进行处理 在某些情况下 他们必须在另一个页面上输入评论 用户发现 如果他们提交信息并转到有评论的页面 然后点击后退按钮返回上一页
  • 使用“var undefined”来测试未定义有什么问题吗

    这个未定义的测试有什么问题吗 var undefined if x undefined do something or this function undefined x return typeof x undefined if undef
  • 如何通过终端以全新状态打开 VSCode 中的文件夹?

    VSCode 似乎总是打开一个具有最后一个 UI 状态的文件夹 我正在寻找类似 Sublime 的东西remember open files false 或者换句话说 我希望 VSCode 以干净的 UI 状态打开 无论上次打开文件夹时 U
  • 在 Asp.net MVC4 中访问 ViewBag 时出现 NullReferenceException

    我正在尝试访问ViewBag我认为的数据如下 span class small ViewBag BreadCrumb span 我正在发送那个ViewBag来自代码的数据 例如 ViewBag BreadCrumb topic Catego
  • 备份MySQL数据库

    我有一个大约 1 7GB 的 MySQL 数据库 我通常使用 mysqldump 进行备份 这大约需要 2 分钟 但是 我想知道以下问题的答案 mysqldump 是否阻止对数据库的读取和 或写入操作 因为在实际场景中 我不想在备份数据库时
  • 在jsDom中设置窗口宽度?

    应该是一个简单的问题 如何设置 jsDom 对象的宽度 jsdom env url http testdatalocation scripts http code jquery com jquery js done function err
  • SVG 内部跨度与文本不在同一行

    我在一个跨度内有一个 SVG 文件 同时包含文本 文本和 SVG 的高度相同 但是 SVG 与文本不在同一行 相关jsfiddle https jsfiddle net tcrnjd53 https jsfiddle net tcrnjd5
  • 我想回显 __FILE__ 名称而不带路径。我只想页面名称,例如:index.php

    echo FILE 给我 C EasyPHP DevServer 13 1VC9 data localweb projects FOLDERNAME index php 我只想获取不带路径的文件名 我想单独获取index php 有任何想法
  • MVC 中的 HttpPost 与 HttpGet 属性:为什么使用 HttpPost?

    所以我们有 HttpPost 这是一个可选属性 我知道这会限制调用 因此只能通过 HTTP POST 请求进行调用 我的问题是我为什么要这样做 想象一下以下情况 HttpGet public ActionResult Edit int id
  • 收集仍在范围内的对象 - GC.Collect

    我读过这篇文章 https devblogs microsoft com oldnewthing 20100810 00 p 13193 https devblogs microsoft com oldnewthing 20100810 0
  • 有没有办法用异步数据更新过滤器

    我已经构建了下一个角度过滤器 App filter cur2symbol CurrenciesService function CurrenciesService return function input iso input input
  • 如何在 django 中保存文件而不创建模型

    我想上传 excel 文件并将该文件保存到 django 中的特定位置 而不为该文件创建模型 我在这里尝试过 我的 forms py 文件 class UploadFileForm forms Form file forms FileFie
  • 如何在node.js子进程模块中将消息以及标准输出从子进程传递到父进程?

    我的子进程模块有问题 特别是 child spawn 和 child fork 我依赖 child process fork 的文档 其中表示 这是 child process spawn 功能的一个特例 生成 Node js 进程 除了将
  • UISearchBar 在单击时修改其框架/边界

    我正在尝试将 UISearchController 放置在我的应用程序 UI 中 布局是 黄色 ViewController 红色 另一个 ViewController 黑色 YellowViewController 中的容器 我想将 UI
  • Android:已购买应用程序的订单 ID

    我们计划从付费应用程序转变为带有应用程序内购买功能的免费应用程序 我们需要让任何支付应用程序费用的用户免费获得应用程序内购买 我正在考虑以下解决方案 我们将在我们的服务器内存储用户的唯一 ID 或唯一订单 ID 当我们发布新的免费版本的应用
  • 通过单击按钮更改 PHP include ("link.php")

    如何通过单击按钮更改 PHP include link html BUTTON 1 change to BUTTON 2 change to BUTTON 3 change to 如何在不刷新页面的情况下执行此操作 使用ajax Wrap
  • 关闭特定url上的AngularJS窗口

    我是 angularjs 的新手 所以这个问题对于经验者来说可能看起来很愚蠢 但我真的无法执行此操作 任何人都可以告诉我如何在到达特定网址后从 webview 返回到应用程序 就像我正在打开一个浏览器中的窗口用于支付过程 所以我需要的是 当
  • Rstudio 更有意义的窗口标题

    我在 Ubuntu 16 04 下使用 R studio 版本 1 0 143 窗口标题仅显示一个非常无信息的 RStudio 我希望至少有当前选项卡的名称 或者最好是与此选项卡对应的文件的完整路径 在 Windows 下 完整路径似乎出现