Поведение клавиатуры jEdit Mac OS
Есть ли в любом случае, чтобы элементы управления клавиатурой jEdits ведут себя так же, как это делает собственное приложение для Mac OS?
Ведя себя, я имею в виду, что команда + left перемещает каретку в начало строки, alt + left перемещается в начало текущего слова и т.д.
Ответы
Ответ 1
Сначала необходимо включить ключ ALT. Сделайте это в файле startup.bsh, расположенном по адресу:
JEDIT_HOME/Contents/Resources/Java/startup/startup.bsh
В Mac OX это обычно будет:
/Applications/jEdit.app/Contents/Resources/Java/startup/startup.bsh
Следующие строки должны быть раскоментированы:
Debug.ALT_KEY_PRESSED_DISABLED = false;
Debug.ALTERNATIVE_DISPATCHER = false;
Теперь вы можете включить ключ ALT в отображениях клавиш, где
C => CMD
M => ALT
Go to End of Line: C+Right
Go to Start of Line: C+Left
Go to Next Word: M+Right
Go to Previous Word: M+Left
Select Next Word: MS+Right
Select Previous Word: MS+Left
Select to End of Line: CS+Right
Select to Start of Line: CS+Left
Ответ 2
К сожалению, выводы Брайана не очень хорошо сочетаются с клавиатурами QWERTZ: он отключает возможность ввода символов, таких как труба, фигурные скобки или что-то, что использует ALT-ключ в качестве модификатора.
Согласно комментариям в startup.bsh:
/*{{{ Remapping modifier keys part II */
/* Note if you chose to make use of the M+ (option key) prefix on MacOS, you
* will need to disable a little piece of code: */
//Debug.ALT_KEY_PRESSED_DISABLED = false;
/* Otherwise M+ will be ignored for the purposes of keyboard shortcuts. */
/* But if you enable this, you might find that Option+8 for example invokes your
* macro but also inserts a bulletpoint, as per standard Macintosh keyboard
* behavior. To disable the Option key for inserting special high ASCII
* characters, uncomment this. Note that it has wider implications, notably
* DROVAK keyboard shortcuts will be mapped as if the keyboard was QWERTY. */
//Debug.ALTERNATIVE_DISPATCHER = false;
/*}}}*/
только раскомментирование Debug.ALT_KEY_PRESSED_DISABLED
должно делать трюк, но здесь [1] это не так: я могу либо использовать ALT как модификатор для ярлыков, либо как модификатор для ввода символов.. в предыдущем разделе также рассматривается сопоставление модификаторов:
/*{{{ Remapping modifier keys part I */
/* The below is the default, swap the items around to
* change meaning of C+, A+, M+, S+.
*/
//KeyEventTranslator.setModifierMapping(InputEvent.CTRL_MASK,
// InputEvent.ALT_MASK, InputEvent.META_MASK,
// InputEvent.SHIFT_MASK);
/* ... and this the MacOS default: */
//KeyEventTranslator.setModifierMapping(InputEvent.META_MASK, /* == C+ */
// InputEvent.CTRL_MASK, /* == A+ */
// InputEvent.ALT_MASK, /* == M+ */
// InputEvent.SHIFT_MASK /* == S+ */);
/*}}}*/
но независимо от сочетания настроек, которые я пытался, я не смог выполнить настройку с обоими параметрами (ALT как модификатор для ярлыков и текстовой обработки).
Итак: любая подсказка/исправление будет высоко оценена.; -)
[1] здесь означает: jEdit 4.3.2 @OSX 10.5.8 (Java 1.5.0_30) с клавиатурой QWERTZ (немецкий)
Ответ 3
Решение, которое работает для меня:
Создайте несколько макросов, которые вставляют специальные альт-символы, которые вам нужны, в textArea (один макрос на символ).
Затем вы можете изменить настройку, чтобы включить альт-ключ для jedit (я включил только первый из двух свойств).
После этого вы можете назначить alt-shortcuts для макросов, которые вы записали, таким образом, чтобы специальные символы были введены тем же самым shortcus, что и раньше.
После этого вы можете изменить ярлык-настройку для текстовой навигации в соответствии со стандартом mac, и у вас все еще будут специальные символы, доступные через определенные макрокоманды.