IntelliJ 14 сочетания клавиш QWERTY, хотя клавиатура DVORAK

Я

  • работает IntelliJ 14
  • с использованием макета Mac OS X
  • работает на OS X (Yosemite)

IntelliJ использует DVORAK вообще, но не для быстрых клавиш. сочетания клавиш находятся в QWERTY. Как будто они были основаны на scancode вместо значения ключа после отображения.

Идеи?

изменить 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)

Ответы

Ответ 1

Оказывается, это проблема в 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.

Для OSX раньше, чем Sierra Обход:

  • Загрузите и установите Karabiner из https://pqrs.org/osx/karabiner/
  • В Системных настройках OSX установите клавиатуру на компьютер по умолчанию "U.S. International". Если вы не часто набираете диакритические знаки и другие международные символы, проще просто установить клавиатуру на "U.S".
  • В настройках карабина введите "dvorak" в поле поиска, затем прокрутите вниз до раздела 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/ и кратко изложил ее здесь:

  • Загрузите и установите элементы Karabiner.
  • Скопируйте qwerty_to_dvorak.json из примеров и установите его как новый конфигурационный файл karabiner.json.
  • Если Karabiner Elements запущен, он подберет новый файл.

Эта ошибка затронет большинство Java-инструментов, таких как JetBrains (IntelliJ, PyCharm, WebStorm, AppCode) и, возможно, также Netbeans. Обход, описанный выше, должен облегчить проблему во всех случаях.

Ответ 2

JetBrains ждут исправления ошибки в JDK, что, конечно же, никогда не произойдет. другой ответ здесь информативен, но будет работать только в Mac OS, поэтому, если вы работаете в Linux или Windows, вам там не повезло.

Я написал script, чтобы обойти проблему, которую вы можете найти здесь здесь. Если вы обычно используете ключевую карту GNOME в pycharm на linux, то вам повезло - вы можете просто импортировать файл dvorak_settings.jar и вернуться к кодированию.

В противном случае вы можете использовать script для генерации вашей собственной текстовой карты с ошибкой, считанной...

Оригинальные файлы раскладки клавиатуры расположены в <pycharm>/lib/resources.jar/idea/Keymap_*.xml.

Пример использования:

./to_dvorak Keymap_Emacs.xml -o Keymap_Emacs_Dvorak.xml

Просматривайте сгенерированный файл и, если он выглядит разумно, упакуйте его в файл .jar (см. пример dvorak_settings.jar для требуемой структуры) и импортируйте его в свою среду IDE.

Ответ 3

У меня была аналогичная проблема с использованием комбинаций клавиш, таких как ctrl + n в intellij 16 на Linux (красная шляпа). Я использую клавиатуру Colemak. У меня было две установки источников ввода в моей операционной системе, системные настройки.

  • Английский (США)

  • Английский (Colemak)

Когда я изменил порядок исходных источников и сначала поставил Colemak, проблема, похоже, исчезла.

Системные инструменты > Настройки > Клавиатурa > Источники входных данных