几乎所有涉及文本的成熟程序都实现了“双击以选择单词”,在某些情况下,“三击以选择其他内容如整行”作为功能。我发现这些功能很有用,但程序之间往往不一致。
示例 - 某些程序的双击不会选择一个单词后面的结尾空格,但大多数程序都会这样做。有些人认为 - 字符是单词的结尾,有些则不然。我喜欢选择整个段落,因为当我三次点击它时,我写这篇文章,VS web开发人员2005没有三重点击支持,超编辑32将在三次点击时选择一行。关于如何跨程序实现双击和三击模式匹配,我们可能会遇到无数的不一致。
我担心如何在我的程序中实现此行为,如果没有其他人达成关于模式匹配应如何工作的约定。
我的问题是,是否存在约定(约定?可能是MS或Linux约定?),这些约定决定了假设如何表现给最终用户?它们是什么,如果有的话?
答案 0 :(得分:13)
我不相信你想要的规格水平有一个标准,而且可能不应该。 Apple Human Interface Guidelines是最完整的。关于选择内容(与控件或离散数据对象相对),他们说:
双击最常用作其他操作的快捷方式,例如...以选择单词。三击选择应用程序定义的下一个逻辑单元。在文字处理文档中,单击三个单词可选择包含单词...的段落。在单词中双击可选择单词。选择应该提供“聪明”的行为;例如,如果用户删除了所选单词,则也应该删除该单词后面的空格...在某些情境中 - 例如,在编程语言中 - 允许用户同时选择左右括号(或者一对中的大括号或括号),以及它们之间的所有字符,双击其中任何一个。“(p115-116)
Apple对于字符是什么以及不包含在单词中非常具体。
微软Windows User Interaction Experience Guidelines说:
对于某些类型的可选对象,每次单击都会扩展单击的效果。例如,在文本框中单击可设置输入位置,双击选择一个单词,然后三击选择一个句子或段落。 (P430)
Java Swing Look and Feel Design Guidelines说:
双击(快速连续两次单击鼠标按钮而不移动鼠标)用于选择较大的单位(例如,选择文本字段中的单词)....三次单击(快速连续三次单击鼠标按钮而不移动鼠标)用于选择更大的单位(例如,在文本字段中选择整行)....文本行中的三次单击会取消选择任何现有选择并选择该行。
Gnome Human Interface Guidelines并未说明双击和三击应该做什么。
这使您可以自由选择最适合您的用户。双击和三倍点击是专家快捷键,因此他们的行为应旨在最大限度地提高效率。考虑为什么用户正在选择一些东西并进行设计以使其变得最简单和最快速。
例如,显然双击单词时包含尾随空格背后的基本原理是用户通常选择一个单词以便将其复制或粘贴到文本中的另一个位置。这意味着您自动包含尾随空格,以防止用户在源处手动删除剩余的额外空间,并在目标处添加单词分隔空间。
同样,如果用户选择一行代码或段落进行复制或将其移动到其他位置,那么您可能希望包含换行符,以便用户不会在源处留下空行并强制手动添加目的地的换行符(假设他们不想采用行/段并将其与另一行/段合并。
如果选择的目的不是复制和移动句子中的文本,那么这些都不适用,并且您不一定要包括尾随空格或换行符。这就是为什么不应该有标准。
另一种方法是执行Apple称为智能剪切和粘贴(参见人机界面指南)或Microsoft Word的智能剪切和粘贴,其中空格,换行和其他调整在切割,复制,粘贴和删除,而不是在选择时。
答案 1 :(得分:2)
在我完美的世界里,我会让它像这样工作。
答案 2 :(得分:0)
在Windows,Linux和OS X中双击选择光标下的单词三击选择整行文本(仅限单行,即换行)
答案 3 :(得分:0)
寻找答案并提出另一种解决方案: 我喜欢在文本中编写代码或命令,并将它们复制到shell提示符而没有结尾\ n 用记事本 2.用()包围每一行 3.使用ctrl +双击。 细...