我'米
IntelliJ通常使用DVORAK,但不是键盘快捷键。 键盘快捷键在QWERTY中。好像它们是基于扫描码而不是映射后的键值。
想法?
编辑1 @gabriel很难说,但这里有一些例子...... 注意:在DVORAK和QWERTY
上,m,a和0-9相同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)
答案 0 :(得分:19)
事实证明这是Java中存在多年的问题,并且仍然存在于Java 9中。请参阅此处的错误报告:https://bugs.openjdk.java.net/browse/JDK-8022079
JetBrains多年来一直意识到这个问题,但正在等待Oracle修复它。请参阅这些JetBrains错误报告:https://youtrack.jetbrains.com/issue/IDEABKL-6493和https://youtrack.jetbrains.com/issue/IDEA-63779
在这些报告中,您将使用名为Karabiner的免费工具找到解决方法。我刚刚确认它适用于IntelliJ。它可能也适用于其他基于Java的工具。
对于早于Sierra The work-around的OSX是:
For U.S. Input Source
部分,然后选中Use Dvorak Keyboard Layout (QWERTY to Dvorak)
从macOS Sierra开始,正如用户MithrilTuxedo在评论中报道的那样,程序是不同的。您必须使用Karabiner Elements(新的Karabiner核心)和配置文件。我已在https://cpbotha.net/2016/12/16/dvorak-remapping-with-karabiner-elements-on-macos-sierra-works/概述了该程序,并在此简要概述:
此错误将影响大多数基于Java的工具,例如JetBrains(IntelliJ,PyCharm,WebStorm,AppCode)以及Netbeans。上面总结的解决方案应该可以缓解所有情况下的问题。
答案 1 :(得分:9)
我在 linux (红帽)上的 intellij 16 中使用 ctrl + n 等组合键会遇到类似的问题。我使用Colemak键盘。我在操作系统中设置了两个输入源,即系统首选项。
英语(US)
英语(Colemak键盘)
当我更改输入源的顺序,并将Colemak放在第一位时,问题似乎就消失了。
系统工具>设置>键盘>输入来源
答案 2 :(得分:2)
JetBrains正在等待在JDK上游修复bug,这当然永远不会发生。 other answer这里提供了丰富的信息,但只适用于Mac OS,因此如果您使用的是Linux或Windows,那么您的运气就不好了。
我写了一个脚本来解决这个问题,你可以找到here。如果你通常在linux上的pycharm中使用GNOME keymap,那么你很幸运 - 你只需导入我的dvorak_settings.jar
文件并重新编码。
否则,您可以使用该脚本生成自己的bugfixed keymap,请继续阅读...
原始的keymap文件位于<pycharm>/lib/resources.jar/idea/Keymap_*.xml
。
使用示例:
./to_dvorak Keymap_Emacs.xml -o Keymap_Emacs_Dvorak.xml
浏览生成的文件,如果它看起来很清晰,请将其打包到.jar
文件中(请参阅我的dvorak_settings.jar
示例了解所需的结构)并在IDE中导入它。
答案 3 :(得分:0)
这个问题(最终!)已在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中修复。