Поведение клавиатуры 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, и у вас все еще будут специальные символы, доступные через определенные макрокоманды.