如何设置Pharo快捷键切换windows?
How to set Pharo keyboard shortcut for switching windows?
我了解到在 Pharo 中可以使用 Alt-Tab 在 windows 之间切换。但是我从来没有能够对此进行测试,因为我通常使用的两个操作系统都捕获 Alt-Tab 并将其用于自己的 window 切换。
我在系统键盘映射浏览器中找不到 Alt-Tab 列表。 switch windows的key在哪里定义的,怎么改?
编辑:我也喜欢 "here's how you could have found out for yourself" 类型的答案。
使用 hallo 菜单在 window 对象上调出检查器。然后在检查器中切换到 'Keys' 选项卡。在那里您可以看到与变形相关的所有快捷方式。选择您感兴趣的 (Alt+TAB) 将在右侧打开一个新的检查器窗格。 'Source code' 显示并突出显示定义键绑定的源代码。浏览方法,编辑它,保存它,重置键映射(KMRepository 重置),你应该完成了。
嗯...你击中了我们的弱点之一:)
键绑定不是他的最佳状态,但是:
- 实际上,alt+tab 已经设置为 "switch window" activity。问题是它并不总是有效(例如,它在 Playground 上无效)。
- 这是因为那里有一些硬编码逻辑,我们正在慢慢地从系统中删除这些人(其中一些部分在 Pharo 诞生之前已有 15 年以上的历史)。
- 有人(可能是在尝试修复 playground 或硬编码失败时)忘记在创建新预览的方法中停止 window... 所以即使您到达系统的那部分,您将拥有一个调试器。当然,您可以通过删除断点来恢复正确的行为,但这并不能纠正 "switch windows" 并非随处可用的事实。
- 我为它打开了一个错误条目:https://pharo.fogbugz.com/f/cases/15546,如果你想关注这个问题(你需要一个帐户,我很抱歉)。
无论如何,我们正在移除这些硬编码的东西,您可以检查 World Menu/System/Keymap Browser 的所有当前可用设置(它们很多,我们也在研究如何更好地显示这些组合...emacs 样式、弹出通知等)
我通过编辑 Morhpic-Core 包中的 "Basic, general navigation shortcuts among morphs">>Kernel edit Morph class>>#morphNavigationShortcutsOn:
您可以在其中为 "World navigateWindowForward"
等创建快捷方式。
我花了一段时间才找到有效的键 o.k,但大多数在文本字段中时效果不佳。我正在使用以下内容:
<keymap>
(aBuilder shortcut: #navigateFocusForwardCtrl)
category: #MorphFocusCtrlNavigation
default: $j ctrl asKeyCombination
do: [ :target :morph :event | morph navigateFocusForward ].
(aBuilder shortcut: #navigateFocusBackwardCtrl)
category: #MorphFocusCtrlNavigation
default: $k ctrl asKeyCombination
do: [ :target :morph :event | morph navigateFocusBackward ].
(aBuilder shortcut: #navigateVisibleWindowForward)
category: #MorphFocusCtrlNavigation
default: Character tab ctrl asKeyCombination
do: [ :target :morph :event | World navigateVisibleWindowForward ].
(aBuilder shortcut: #navigateWindowForward)
category: #MorphFocusCtrlNavigation
default: $l ctrl asKeyCombination
do: [ :target :morph :event | World navigateWindowForward ].
(aBuilder shortcut: #navigateWindowBackward)
category: #MorphFocusCtrlNavigation
default: $; ctrl asKeyCombination
do: [ :target :morph :event | World navigateWindowBackward ]
虽然类别可能不正确,但它有效...(而 #MorphFocusNavigation 不正确!)
我了解到在 Pharo 中可以使用 Alt-Tab 在 windows 之间切换。但是我从来没有能够对此进行测试,因为我通常使用的两个操作系统都捕获 Alt-Tab 并将其用于自己的 window 切换。
我在系统键盘映射浏览器中找不到 Alt-Tab 列表。 switch windows的key在哪里定义的,怎么改?
编辑:我也喜欢 "here's how you could have found out for yourself" 类型的答案。
使用 hallo 菜单在 window 对象上调出检查器。然后在检查器中切换到 'Keys' 选项卡。在那里您可以看到与变形相关的所有快捷方式。选择您感兴趣的 (Alt+TAB) 将在右侧打开一个新的检查器窗格。 'Source code' 显示并突出显示定义键绑定的源代码。浏览方法,编辑它,保存它,重置键映射(KMRepository 重置),你应该完成了。
嗯...你击中了我们的弱点之一:)
键绑定不是他的最佳状态,但是:
- 实际上,alt+tab 已经设置为 "switch window" activity。问题是它并不总是有效(例如,它在 Playground 上无效)。
- 这是因为那里有一些硬编码逻辑,我们正在慢慢地从系统中删除这些人(其中一些部分在 Pharo 诞生之前已有 15 年以上的历史)。
- 有人(可能是在尝试修复 playground 或硬编码失败时)忘记在创建新预览的方法中停止 window... 所以即使您到达系统的那部分,您将拥有一个调试器。当然,您可以通过删除断点来恢复正确的行为,但这并不能纠正 "switch windows" 并非随处可用的事实。
- 我为它打开了一个错误条目:https://pharo.fogbugz.com/f/cases/15546,如果你想关注这个问题(你需要一个帐户,我很抱歉)。
无论如何,我们正在移除这些硬编码的东西,您可以检查 World Menu/System/Keymap Browser 的所有当前可用设置(它们很多,我们也在研究如何更好地显示这些组合...emacs 样式、弹出通知等)
我通过编辑 Morhpic-Core 包中的 "Basic, general navigation shortcuts among morphs">>Kernel edit Morph class>>#morphNavigationShortcutsOn:
您可以在其中为 "World navigateWindowForward"
等创建快捷方式。
我花了一段时间才找到有效的键 o.k,但大多数在文本字段中时效果不佳。我正在使用以下内容:
<keymap>
(aBuilder shortcut: #navigateFocusForwardCtrl)
category: #MorphFocusCtrlNavigation
default: $j ctrl asKeyCombination
do: [ :target :morph :event | morph navigateFocusForward ].
(aBuilder shortcut: #navigateFocusBackwardCtrl)
category: #MorphFocusCtrlNavigation
default: $k ctrl asKeyCombination
do: [ :target :morph :event | morph navigateFocusBackward ].
(aBuilder shortcut: #navigateVisibleWindowForward)
category: #MorphFocusCtrlNavigation
default: Character tab ctrl asKeyCombination
do: [ :target :morph :event | World navigateVisibleWindowForward ].
(aBuilder shortcut: #navigateWindowForward)
category: #MorphFocusCtrlNavigation
default: $l ctrl asKeyCombination
do: [ :target :morph :event | World navigateWindowForward ].
(aBuilder shortcut: #navigateWindowBackward)
category: #MorphFocusCtrlNavigation
default: $; ctrl asKeyCombination
do: [ :target :morph :event | World navigateWindowBackward ]
虽然类别可能不正确,但它有效...(而 #MorphFocusNavigation 不正确!)