【问题标题】:jEdit Mac OS keyboard behaviourjEdit Mac OS 键盘行为
【发布时间】:2011-01-18 20:33:36
【问题描述】:

是否有 jEdits 键盘控件的行为方式与本机 Mac OS 应用程序的行为方式相同?

我的意思是 command+left 将插入符号移动到行首,alt+left 移动到当前单词的开头等。

【问题讨论】:

  • 好问题!这方面有什么进展吗?我自己也想知道。但我在网上也找不到任何东西。恐怕您必须自己创建绑定。 ..
  • 没有进展,没有回应 :) 是的,更多的是 jedit 在进行绑定时无法识别某些 mac 键,因此这不仅仅是进行映射的问题。我知道在以前版本的 jedit 中它有一个适用于 mac 的插件。但据我所知,由于它无法与 JDK6 一起使用,因此已将其删除。

标签: macos keyboard jedit


【解决方案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 转到行尾:C+Right 转到行首:C+Left 转到下一个单词:M+Right 转到上一个单词:M+Left 选择下一个单词:MS+Right 选择上一个单词:MS+Left 选择到行尾:CS+Right 选择到行首:CS+Left

【讨论】:

  • 这很有帮助,但并没有完全提供我想要的所有功能。从 5.1.0 版开始,如果您在 startup.bsh 文件中搜索“MacOS”,则还有其他几行需要取消注释 (KeyEventTranslator.setModifierMapping);这样做解决了@BrianHeylin 的原始问题。
  • 非常感谢布赖恩。仅在 jEdit 5.3.0 中添加它需要手动添加行 Debug.ALT_KEY_PRESSED_DISABLED = false;' and 'Debug.ALTERNATIVE_DISPATCHER = false;
【解决方案2】:

不幸的是,Brian 的发现不能很好地使用 QWERTZ 键盘:它无法输入管道、花括号或任何使用 ALT 键作为修饰符的字符。

根据startup.bsh中的cmets:

/*{{{ 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(德语)键盘

【讨论】:

  • 我遇到了同样的问题,使用的是 QWERTY 键盘。 :( 无法通过 jEdit 输入#??
【解决方案3】:

适合我的解决方案:

创建一些宏,将您需要的特殊 alt 字符插入到 textArea 中(每个字符一个宏)。

然后您可以更改设置以启用 jedit 的 alt 键(我只启用了两个属性中的第一个)。

之后,您可以为录制的宏分配 alt-shortcuts,这样特殊字符将被与以前相同的快捷方式插入。

之后,您可以更改文本导航的快捷方式设置以匹配 mac 标准,您仍然可以通过定义的宏快捷方式使用特殊字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2015-07-25
    相关资源
    最近更新 更多