devise键盘快捷方式的最佳做法

我是键盘快捷键的忠实粉丝。 如果某些function或操作没有快捷方式,我倾向于编写一个小程序,并附加Ctrl + Alt + [key]快捷方式。

昨天在使用Visual Studio进行编码时,我开始思考他们是如何分配快捷方式的。 有大量的命令,而且大多数是直观的,没有一个与其他系统范围的组合键重叠。 唯一的例外是Ctrl + W ,它激怒了我,因为它没有按照默认closures活动标签。

将键盘快捷键分配给自己的程序时,应记住哪些最佳做法?

什么是常用和“保留”的组合,除了特定function之外不应该使用(例如Ctrl + SCtrl + W ….)

在小应用程序中,我认为最好使用Ctrl作为修饰键,但在更大的应用程序中如何? 应该有两个修饰键( Shift / Alt ?)或者像Visual Studio中那样? 如果Shift仅用于反转function( Ctrl + Shift + Tab ,向后滚动制表符)?

或者当程序在托盘中最小化运行时,或者根本没有GUI时怎么办。 应该在这个组合中使用Windows键吗?

  • 从常用的Windows绑定开始: Ctrl + C复制, Ctrl + S保存等。用户在尝试使用这些最常用的热键时不应该感到惊讶。

  • 查看与您自己的功能类似的其他应用程序。 例如,如果你做文字处理(应用文字样式),然后看Word。 如果你有一个像绘图工具的东西,也许看看Photoshop等。

  • 在程序“完成”时,列出你期望的所有命令。 这可能比现在多得多,其中一些命令可能永远不会产生,但是这个练习可以帮助您避免每次发布时更改热键 – 从一开始就保留它们。

  • 现在,从列表中删除所有您认为一天不会使用多少次的命令。 例如Ctrl + C代表“(C)opy”是好的,因为那可能一个小时可以使用多达60次。 但是,如果新的版本被释放,“(C)heck”的Ctrl + C是一个不好的热键,因为用户不太可能希望每周更新一次以上。

  • 如果不确定热键的使用频率, 请将其保留 。 有更多的备用密钥可用于未来的功能比绑定键盘上的每个键更好,然后不得不改变绑定。 使用更少的热键可以降低用户的复杂性,减少需要测试的数量,以及用户不想做的事情。 如果用户真的想要一个热键,他们会问这个问题,你可以添加它。 但通常只有真正常用的功能需要热键。

  • 用修改器的列来绘制字母表的电子表格。 在网格中输入您期望的高使用率命令集,并为每个单元划分优先级以使最重要的命令使用最简单和最明显的快捷键。 在很多情况下,你会发现只有一个命令落在一个特定的键上。 也尝试将相同的键上的相关命令分组,但使用不同的( Ctrl / Shift / Alt )修饰符(例如Ctrl + S保存, Ctrl + Shift + S全部保存)。 这将使您不能轻易映射到一个明显的键的任何命令。 考虑如果重命名某些选项可能有助于转移事物以实现更好的映射(例如,像“选项”,“设置”或“首选项”等同义词可帮助您找到更容易映射到良好组织的命令名称)

  • 你现在留下的命令不能绑定到最明显的键(例如“剪切”不能绑定到Ctrl + C,因为它用于“复制”,所以在菜单中,你通常会看到它绑定为编辑 – > cu(T)和编辑 – >(C)opy。所以你可以考虑使用Ctrl + T与菜单方法的一致性(尽管在这种情况下,当然有一个预先存在的标准, Ctrl + X =切割)。

  • 添加一个键绑定系统,以便您的用户可以添加/更改热键来定制他们的用户界面。

  • 尽可能保持一致。 正如你所指出的那样,移位通常用于“反转导航命令的方向”。 选择时,按照窗口约定( Ctrl键切换, Shift键延伸)。 但主要是在整个应用程序中保持一致 – 在大多数情况下, CtrlShiftShift + Ctrl对操作的影响并不重要,但是如果可能的话,尝试将类似的逻辑应用于所有的命令绑定。

  • 小心使用Alt作为修饰符。 用户应该能够使用Alt在菜单系统中导航。 所以你应该只使用AltCtrl / Shift ,并确保你的热键处理不会破坏菜单系统提供的正常的Alt处理。

  • 如果您的程序有很多文本输入,请避免使用未经修改的热键快捷键。 当你按M来做某件事情时,真的很烦人,不仅这件事情不会发生,而且在你的用户界面的某个随机部分的文本输入字段中会出现一个M! 使其成为Ctrl + MCtrl + Shift + M ,这个问题很容易避免。 这也允许热键来激活命令,即使用户将其输入焦点放在特定位置,也避免了任何讨厌的形式。

  • 如果您使用多键序列,则不要混合和匹配修饰符。 例如, ctrl + Actrl + B是好的,但ctrl + A + Bctrl + Ashift + B是坏的,因为用户必须在序列中途释放ctrl ctrl。 (Visual Studio测试命令,我在跟你说话!)

  • 除非您是输入焦点应用程序,否则不要在热键上进行操作。 例如,有一个非常受欢迎的程序(默认情况下)抓取Ctrl + A ,因此每次尝试在一个不相关的程序中选择所有程序时,会产生一些令人烦恼的事情。 为什么哦,为什么!? 如果您认为全局热键是一个好主意,那么将其添加为用户可以随时打开的选项,以便他们知道热键存在。

  • 我同意Visual Studio有一个很好的默认绑定集。 但是在很多方面,它的设计都很糟糕 – VS2010是我用过的VS的第一个版本,并没有对前一个版本的核心密钥绑定做出令人沮丧的巨大改变。 这通常是升级到新的VS版本中最痛苦的部分。 我非常高兴和惊讶的发现,最常见的功能(如“build”)在VS2010中默认仍然在相同的热键上! 希望他们会坚持一段时间…

快捷键需要记住,这就是为什么Ctrl + S (保存)和Ctrl + N (新)运行良好,一些程序员已经采取了它,以改变不同的语言快捷方式。 (对于旧版本的MS Write,加粗的Ctrl + BCtrl + F )。类似地,X类似于剪刀,V是插入标记,因此剪切和粘贴。

在更高级的层面上,防止无法撤销的意外影响:更危险的命令需要更复杂的安全卫士:像Ctrl + Alt + Del这样的事情是非常难以打字的。

另外请记住Alt是菜单访问键。

还有一件事不应该被遗忘: Ctrl + Alt + 数字/字母组合可以更好地避免,因为对于许多键盘布局来说, AltGr键盘修改器也是由Ctrl + Alt触发的。

例如,要在德语键盘上输入@字符,可以输入AltGr + Q = Ctrl + Alt + Q

更多信息: http : //blogs.msdn.com/b/oldnewthing/archive/2004/03/29/101121.aspx