来自 Windows,我非常习惯非常常见的“保存更改”模式对话框,提供“是/否/取消”选项,并提供“Y”和“N”作为键盘加速器(快捷键)。
在 Linux 上,我经常尝试关闭未保存的文档,然后键入“N”关闭对话框——但这样做不起作用。不仅模式不同(“关闭而不保存”与“否”),而且似乎从来没有任何加速器。
我在 Sublime Text 中尝试过:
梅花:
编辑:
LibreOffice 作者:
这是 Linux 上此类对话框的正常范例吗?它的起源是什么?是GTK提供的对话框吗?
对于一个非常常见的对话框,我发现它非常不友好。我必须使用选项卡来逐步浏览哪个按钮获得焦点。根据所使用的主题,这并不总是显而易见的。
为什么没有加速器?它们在模式对话框中不受支持吗?
我正在尝试熟悉常见的模态范例(至少对于 GTK 而言),这样我就不必考虑它,只需完全通过键盘对我的操作进行排队即可。对于这个示例集,似乎“tab,enter”是关闭并关闭而不保存的方式。
我发现有趣的是,Sublime Text 在 Windows 上使用预期的“是/否/取消”对话框,在 Linux 上使用“关闭而不保存/取消/保存”对话框(就像那里的其他应用程序一样)。我怀疑这一定是一个积极的决定。
答案1
这个对话框确实是Gtk提供的。
它确实有加速器;默认情况下不会显示它们,但如果按住您Alt就会看到它们。在 Gedit 中,它们分别w用于“关闭而不保存”、c“取消”和s“另存为...”。您还可以使用Esc“取消”和“Enter保存”。
答案2
我相信 GTK/GNOME 从 Apple macOS 及其祖先那里借鉴了相当多的人机界面设计指南。
我认为 Mac 的对话框窗口有相当严格的设计规则:
- Enter始终是“执行默认/安全操作”的加速器,即“保存”或“另存为”...在您的示例中,有点像“普遍肯定”。 “保存”/“另存为”按钮上较粗的边界暗示情况就是如此。
- Esc始终是“停止,我毕竟不想要这个”按钮,在您的示例中调用相当于“取消”的按钮。换句话说,“万能负”加速器。
- ..并且由于“关闭而不保存”是破坏性选项(它会导致数据丢失),因此实际上应该比其他人更难选择。所以它不会获得任何一个通用加速器。
您可能想阅读经典的 Macintosh 人机界面指南文档,或者至少是与对话框相关的部分(反馈和对话从 PDF 第 33 页开始,以及从第 199 页开始关于对话框的整个第 6 章。)尽管 GTK 进行了某些修改,但这份旧文档非常清楚地描述了 UI 设计人员可能追求的设计理念为了。
GNOME 也有自己的人机界面指南。特别是,它明确定义了加速器(称为访问键Alt在他们的术语中)仅在按住时才会显示。
答案3
关于起源我给出了一些来自经典 UNIX 编辑器“vi”(和“vim”)的例子。
在 vim 中,在“quit”命令“q”之后:
E37: No write since last change (add ! to override)
这显示在红色(!)底线上。现在你必须下定决心,如果你想q!
(真正退出你的未命名的“缓冲区” - 还没有文件),或者w my file
(写为文件“我的文件”(w! my file
覆盖)),然后q
。或者继续 - 它不是模态的,只是一条消失的线。
(对于现有文件,它将wq
保存到现存的文件,然后退出)
在更经典的“vi”中(1976(!)维基百科说):
No write since last change (:quit! overrides)
这里没有表明 q方法辞职。你可以在 中找到它man ex
。
quit abbr: q
Causes ex to terminate. No automatic write of the editor buffer
to a file is performed. However, ex issues a warning message [...]
或者在 vim 中,之后h[elp] quit
:q[uit] Quit the current window. Quit Vim if this is the last
window. This fails when changes have been made [...]
Control-C 给出(再次在 vim 上):
Type :qa! and press <Enter> to abandon all changes and exit Vim
如果你第一次读到这篇文章,感觉就像是一种格式错误的侮辱:输入“qa”,你这个白痴。它的真正含义是:分号表示命令模式,qa 表示退出所有文件/窗口,“!”强制退出。
离开编辑从来都不是一件简单的事——甚至不可能。你的例子也证明了这一点。
我很高兴第一个答案(Alt
显示的关键)解决了主要问题。
“save (as)(...)”按钮本身也非常不一致:sublime 和 libreoffice 似乎直接写入“New”文件或“Untitled 1”文档。 Pluma 缺少圆点!哦,我明白了:它被称为“未保存的文档 1”,所以“另存为”当然意味着“另存为...”而不是“另存为原样”。谁会想要在他的文件夹中出现这样的悖论呢?
我想说:你真的不能叫“linux”不友好的。每个人都在努力建立一个有用的桌面环境在图形用户界面中运行于linux。
完全通过键盘对我的操作进行排队。
嗯,听起来您可能喜欢在终端中使用 vim ;)
现在我看看我是否可以让我的 vim 更多友好的。它确实不应该出现在红色背景错误行上......