我真的爱TeXStudio,但是它有一个功能最近开始让我烦恼。
每当我想获得更多工作空间时,我就会开始点击按钮Esc
。这是(在各种 IDE 中)一个称为“关闭某些内容”的功能的常用快捷方式,它基本上会逐个关闭辅助浮动窗口。
但是,如果我Esc
在所有浮动窗口都已关闭后继续点击(由于惯性,这种情况总是会发生),则会出现一个带有黄色鸭子的弹出窗口:
我尝试在互联网上搜索有关此问题的信息,但只收到几份小报告,将这种行为描述为“复活节彩蛋“。在我看来,这是一个有点侵扰性的复活节彩蛋,所以如果有人告诉我如何摆脱它,我会很高兴。
由 CarLaTeX 编辑: (&KJO) TeXStudio duck 已更新,TikZducks 现在出现!
答案1
我倾向于按下 ESC 键,即使我知道它不会做任何事情。我经常被这个烦人的鸭子打扰(抱歉,但这完全是侵入性的,我讨厌屏幕中间弹出一些东西)。所以这里有一个基于 TeXStudio 宏系统的解决方案:
去除
Esc
当前的的快捷键。您无法禁用默认快捷键,但可以禁用其他快捷键Close Element
。Options > Configure TeXstudio > Shortcuts > Menus > View > Close Element
在 中
Options > Configure TeXstudio > Shortcuts
,启用Close Log-View
和Close Embedded Viewer
。打开宏编辑器并使用快捷键创建宏脚本
Esc
:/* for old TexStudio versions, uncomment the following line * to indicate that the macro is to be executed as a script */ // %SCRIPT panel = app.getManagedAction("main/view/show/outputview") /* open a fake panel if none exists */ if (pdfs.length === 0 && !panel.checked) panel.trigger() /* close the menu or anything that should be closed */ app.viewCloseElement() /* close the fake panel if needed */ if (panel.checked) panel.trigger()
脚本的工作方式如下:如果您打开了消息面板或打开了 PDF 查看器,则它只会关闭元素(默认情况下会发生这种情况)。如果没有,它会打开面板并关闭当前元素(可以是此面板或要关闭的另一个元素)。如果打开了另一个菜单(例如,像“插入 Unicode 字符”或自动完成器这样的菜单,在 QtScript 中无法获取其状态),则假面板会再次关闭。
这样,鸭子就不会被触发,因为动作总是会发生某事。
答案2
答案3
以下部分代码负责函数中的小黄鸭void Texstudio::viewCloseSomething()
:
QTime ct = QTime::currentTime();
if (ct.second() % 5 != 0) return;
for (int i=2; i<63; i++) if (ct.minute() != i && ct.minute() % i == 0) return;
txsInformation("<html><head></head><body><img src=':/images/egg.png'></body></html>");
这部分代码之前,处理了按下按钮Esc
真正起作用的几种情况。如果没有发生任何反应,则执行引用的代码。
这意味着当以下条件全部满足时,小黄鸭就会出现:
Esc
被按下,并且不会造成其他影响,并且
当前秒是 5 的倍数,最后,
当前分钟是一个质数。
编辑:
它也适用于 Ubuntu
答案4
当前代码已更改为更具季节性(请参阅上面问题中的最新图片)
6918 // easter egg
6919 QTime ct = QTime::currentTime();
6920 if (ct.second() % 5 != 0) return;
6921 for (int i = 2; i < 63; i++) if (ct.minute() != i && ct.minute() % i == 0) return;
6922 QDate cd = QDate::currentDate();
6923 const char * mode = "";
6924 if (cd.month() == 12 && cd.day() >= 20) mode = "-santa";
6925 else if ( (cd.month() == 10 && cd.day() >= 30) || (cd.month() == 11 && cd.day() == 1)) mode = "-witch";
6926 else if ( (cd.month() == 3 && cd.day() >= 22) || (cd.month() == 4 && cd.day() <= 25)) mode = "-easter";
6927 UtilsUi::txsInformation(QString("<html><head></head><body><img src=':/images/egg%1.png'></body></html>").arg(mode));
6928 }
因此,除了 BMV 的答案
- 如果时间/日期满足 1 至 4 的条件,并且是复活节/万圣节/圣诞节,您就会看到一只主题鸭子。
感谢@CarLaTeX 的更新和@BMV 解释出现频率
剧透警告由我决定.ò_ó.看看你是否能算出它们会出现在哪几天。