使用Ctrl + Shift + Z作为MySQL Workbench for Windows中重做操作的快捷方式

时间:2015-07-03 14:01:37

标签: windows keyboard-shortcuts mysql-workbench undo-redo

在Windows上,MySQL Workbench中的 Redo 操作被映射到 Ctrl + Y 键盘快捷键(看起来一直如此)从september 2009开始。我想使用 Ctrl + Shift + Z 。但是,按此组合会在当前标签中打印SUB字符,我将其解释为substitute character

根据SO answer,我应该可以在main_menu.xml文件中更改它。执行此操作并重新启动MySQL Workbench后,新的键盘快捷键正确显示在“编辑”菜单中,但按相应的键仍然会回显SUB个字符。

有没有办法让 Ctrl + Shift + Z 工作?

编辑:

我所做的完全是:

  • 使用Modifier+Shift+Z
  • 将快捷方式更改为元素中的id="com.mysql.wb.menu.edit.redo"
  • 使用id="com.mysql.wb.menu.database.sync_mysql_script"(使用Modifier+Shift+Z)将快捷方式更改为元素中的其他快捷方式。

您可以在Thomas Dickey's answer中看到更详细的内容。

2 个答案:

答案 0 :(得分:1)

您没有详细说明您尝试过的内容。在main_menu.xml中,我看到了

    <value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.edit.redo">
      <link type="object" key="owner" struct-name="app.MenuItem">com.mysql.wb.menu.edit</link>
      <value type="string" key="caption">Redo</value>
      <value type="string" key="name">redo</value>
      <value type="string" key="command">builtin:redo</value>
      <value type="string" key="itemType">action</value>
      <value type="string" key="shortcut">Modifier+Y</value>
      <value type="string" key="platform">windows,linux</value>
    </value>

    <value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.edit.redomac">
      <link type="object" key="owner" struct-name="app.MenuItem">com.mysql.wb.menu.edit</link>
      <value type="string" key="caption">Redo</value>
      <value type="string" key="name">redo</value>
      <value type="string" key="command">builtin:redo</value>
      <value type="string" key="itemType">action</value>
      <value type="string" key="shortcut">Modifier+Shift+Z</value>
      <value type="string" key="platform">macosx</value>
    </value>

这两个块在多个地方不同,所以我不会更改platform值。改变行

      <value type="string" key="shortcut">Modifier+Y</value>

      <value type="string" key="shortcut">Modifier+Shift+Z</value>

似乎可行。但是,在文件的后面有一个现有的定义,如果你刚刚进行了更改就会发生冲突:

    <value type="object" struct-name="app.MenuItem" id="com.mysql.wb.menu.database.sync_mysql_script">
      <link type="object" key="owner" struct-name="app.MenuItem">com.mysql.wb.menu.database</link>
      <value type="string" key="caption">Synchronize Model...</value>
      <value type="string" key="name">synchronization</value>
      <value type="string" key="command">plugin:db.mysql.plugin.sync.db</value>
      <value type="string" key="itemType">action</value>
      <value type="string" key="shortcut">Modifier+Shift+Z</value>
      <value type="string" key="platform">windows,linux</value>
      <value type="string" key="context">*model</value>
    </value>

也许你忽略了这一点。

答案 1 :(得分:1)

不幸的是,MySQL Workbench中的键盘处理并不总是集中的。特别是编辑器控件(Scintilla)有自己的键盘方案,不受xml中定义的内容的影响。从xml加载热键时,在编辑器中设置热键可能会很有意义。