Как я могу изменить сопоставления клавиш control / option / command в таблице клавиш Emacs IntelliJ?

GNU Emacs в Mac OS X по умолчанию использует клавишу control как CTRL, а клавишу command как META . Это сводит меня с ума, потому что мой MacBook Pro содержит только одну клавишу control слева, в то время как я привык к клавише control с обеих сторон клавиатуры.

С моей установкой GNU Emacs я смог изменить переменные mac-control-modifier, mac-command-modifier и mac-option-modifier так, чтобы команда действовала как CTRL, а option действовала как МЕТА.

Как я могу сделать то же самое в IntelliJ IDEA? Выбрать «Emacs» в качестве раскладки клавиатуры легко, но я не вижу возможности сделать подобное переназначение для CTRL и META. Я знаю, что могу переназначить эти ключи глобально в ОС, но я не хочу этого делать. Я также знаю, что могу перейти к каждому действию и индивидуально изменить их, но это кажется плохим решением.


person Robert Campbell    schedule 21.08.2010    source источник


Ответы (1)


Возможно, это не самое простое решение, но вы можете открыть файл resources.jar (/Applications/IntelliJIdea.app/lib/resources.jar в MacOS), найти копию Keymap_Emacs.xml (в каталоге идей) и изменить ее.

А затем вы можете создать новую раскладку клавиатуры в IntelliJ для обновления ее новым содержимым (~ / Library / Preferences / IntelliJIdea90 / keymaps в MacOS).

Таким образом, вы можете изменить всю раскладку клавиатуры, не изменяя каждое действие по отдельности.

person Colin Hebert    schedule 21.08.2010
comment
Спасибо, Колин, это сработало (и было довольно легко). Единственное, что я бы добавил к вашему ответу, это то, что размещение прямой копии (упакованного) Keymap_Emacs.xml не сработает; Idea 9.0 выдает ошибку раскладки клавиатуры при загрузке. Вместо этого я открыл раздел Keymap в настройках Idea, выбрал раскладку Emacs, щелкнул Copy, затем сделал одно изменение, а затем применил изменение. Затем я открыл сгенерированную раскладку xml в ~/Library/Preferences/IntelliJIdea90/keymaps, выполнил поиск и заменил control на meta и сохранил его. Все работает отлично. - person Robert Campbell; 11.09.2010
comment
Изменился формат пользовательской раскладки клавиатуры. В IntelliJ 14 вместо копии оригинала он теперь минимален, с родительским атрибутом в корневом элементе. Внутри появятся только те действия, которые были отменены пользователем. Итак, теперь, после создания настраиваемой раскладки клавиатуры в IntelliJ, вы скопировали элементы действия из упакованного Keymap_Emacs.xml в настраиваемую раскладку клавиш. После этого все работает нормально. - person jgibson; 04.09.2015