【问题标题】:IntelliJ 14 keyboard shortcuts are QWERTY though keyboard is DVORAKIntelliJ 14 键盘快捷键是 QWERTY 虽然键盘是 DVORAK
【发布时间】:2015-08-11 12:21:47
【问题描述】:

我是

  • 运行 IntelliJ 14
  • 使用 Mac OS X 布局
  • 在 OS X (Yosemite) 上运行

IntelliJ 通常使用 DVORAK,但不用于键盘快捷键。 键盘快捷键在 QWERTY 中。好像它们是基于扫描码的,而不是映射后的键值。

想法?

编辑 1 @gabriel 很难说,但这里有一些例子...... 注意:m、a 和 0-9 在 DVORAK 和 QWERTY 上是一样的

cmd+/     'comment line' flashes code menu and sometimes moves to a brace (/ == {)
cmd+b      works, goes to definition  (b == n)
cmd+opt+l 'reformat' flashes code menu  (l == p)

【问题讨论】:

  • 你能给我们举个例子吗?例如,如果您按下command + O,实际会发生什么?您希望会发生什么?
  • 总是用@ 发送评论,这样它就会引发问题。我没有看到您的编辑 ;-) 那么,您的键盘最初是 QUERTY 吗?并且您使用 MacOS 将其配置为 DVORAK System Preferences
  • @GabrielOshiro 是的。 MS Natural 键盘、内置键盘和苹果蓝牙键盘上的结果相同/相似。令人沮丧的是所有快捷方式都无法正常工作。正在考虑下一步。
  • 万岁!我发现其他人有完全相同的问题!我的键盘在 OSX 10.10.3(2015 年初 Retina MacBook Pro)下配置为 Dvorak。当我正常输入时,一切正常,但一些快捷方式的功能与 Qwerty 对应的功能相同,例如:当我按下选项时 - / IntelliJ 会“导航回来”而不是“评论行”。在 Dvorak 中,通常为 [ 的键映射到 /,因此看起来 IntelliJ 正在读取键的 QWERTY 值。有趣的是,字母键似乎确实有效。帮助!

标签: macos intellij-idea osx-yosemite intellij-14


【解决方案1】:

事实证明,这是 Java 中存在多年的问题,并且在 Java 9 中仍然存在。请参阅此处的错误报告:https://bugs.openjdk.java.net/browse/JDK-8022079

JetBrains 多年来一直意识到这个问题,但正在等待 Oracle 解决它。请参阅以下 JetBrains 错误报告:https://youtrack.jetbrains.com/issue/IDEABKL-6493https://youtrack.jetbrains.com/issue/IDEA-63779

在这些报告中,您会发现一种使用名为 Karabiner 的免费工具的变通方法。我刚刚验证它适用于 IntelliJ。它可能也适用于其他基于 Java 的工具。

对于早于 Sierra 的 OSX The work-around 是:

  • https://pqrs.org/osx/karabiner/下载并安装Karabiner
  • 在 OSX 系统偏好设置中,将键盘设置为默认的“美国国际”PC。如果您经常键入变音符号和其他国际字符,则将键盘设置为“美国”会更容易。
  • 在 Karabiner 设置中,在搜索框中键入“dvorak”,然后向下滚动到 For U.S. Input Source 部分并选中 Use Dvorak Keyboard Layout (QWERTY to Dvorak)

从 macOS Sierra 开始,正如用户 MithrilTuxedo 在 cmets 中所报告的,该过程有所不同。您必须将 Karabiner Elements(新的 Karabiner 核心)与配置文件一起使用。我已在https://cpbotha.net/2016/12/16/dvorak-remapping-with-karabiner-elements-on-macos-sierra-works/ 概述了该过程,并在此简要总结:

  • 下载并安装 Karabiner Elements。
  • 从示例中复制 qwerty_to_dvorak.json 并将其安装为新的 karabiner.json 配置文件。
  • 如果 Karabiner Elements 正在运行,它将获取新文件。

此错误将影响大多数基于 Java 的工具,例如 JetBrains(IntelliJ、PyCharm、WebStorm、AppCode)以及 Netbeans 的工具。上面总结的解决方法应该可以缓解所有情况下的问题。

【讨论】:

  • 谢谢!在我的 Mac 上完美运行。
  • 这并不能解决问题。实际上没有效果。
  • 我有很多确诊的。也许您正在处理不同的问题,或者是相同的问题但您没有正确应用此修复?
  • 对于 10.12 (Sierra),您需要使用 github.com/tekezo/Karabiner-Elements
  • 哦,目前Karabiner-Elements没有真正的GUI,而是描述了如何设置配置文件。在 repo examples/qwerty_to_dvorak.json 中可以解决问题。保存配置后,它将立即开始工作。
【解决方案2】:

我在 linux(red hat)上的 intellij 16 中使用 ctrl+n 之类的组合键时遇到了类似的问题。我使用 Colemak 键盘。我在操作系统中设置了两个输入源,系统偏好设置。

  1. 英语(美国)

  2. 英语(Colemak)

当我更改输入源的顺序并将 Colemak 放在首位时,问题似乎消失了。

系统工具 > 设置 > 键盘 > 输入源

【讨论】:

  • 这也适用于我在 Kubuntu 16.04 上使用 neo2 布局 - 非常感谢!
  • 也适用于我,(Ubuntu 18.04.2、Colemak、Pycharm 2019.1)
  • 很好的解决方案!在 Arch 上也为我工作。使用setxkbmap 并更改了布局的顺序和bam!像魅力一样工作。
  • 此解决方案也适用于 NixOS 上的 IntelliJ IDEA Ultimate 2019.3。
【解决方案3】:

JetBrains 正在等待上游在 JDK 中修复该错误,这当然永远不会发生。这里的other answer 提供了丰富的信息,但只能在 Mac OS 上运行,所以如果你使用的是 linux 或 windows,那你就不走运了。

我写了一个脚本来解决这个问题,你可以找到here。如果您通常在 linux 上的 pycharm 中使用 GNOME 键盘映射,那么您很幸运 - 您可以简单地导入我的 dvorak_settings.jar 文件并返回编码。

否则,您可以使用脚本生成自己的已修复错误的键盘映射,请继续阅读...

原始键盘映射文件位于<pycharm>/lib/resources.jar/idea/Keymap_*.xml

示例用法:

./to_dvorak Keymap_Emacs.xml -o Keymap_Emacs_Dvorak.xml

浏览生成的文件,如果看起来正常,请将其打包到 .jar 文件中(有关所需结构,请参阅我的 dvorak_settings.jar 示例)并将其导入您的 IDE。

【讨论】:

    【解决方案4】:

    这个问题(终于!)在 IntelliJ IDEA 2017.1 中得到修复。见JetBrains issue JRE-172, “Wrong keys are picked up on dvorak layout in Mac OSX 10.6.2”

    它似乎也在其他 JetBrains 工具中得到修复。我测试了它在 PyCharm 2017.1、CLion 2017.1 和 AppCode 2017.1 中得到了修复。

    【讨论】:

    • fyi...只需使用 intellij 2017.1.1 设置新机器...快捷方式映射器对话框仍然不尊重 osx 上的 dvorak。
    猜你喜欢
    • 2010-12-04
    • 2015-01-10
    • 2016-01-13
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多