“保存更改”模式对话框使用“关闭而不保存”的起源、缺少键盘加速器以及如何与这些对话框交互

“保存更改”模式对话框使用“关闭而不保存”的起源、缺少键盘加速器以及如何与这些对话框交互

来自 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 更多友好的。它确实不应该出现在红色背景错误行上......

相关内容