Isabelle/jEdit: Emacs 设置标记不起作用

Isabelle/jEdit: Emacs Set Mark does not work

我是 Isabelle/jEdit 的新手。我用惯了Emacs,所以想把快捷方式设置成Emacs风格。在大多数情况下它运行良好,但命令 Emacs Set Mark 不起作用。当我调用该命令时,消息“Input/output complete”出现在迷你缓冲区中,文本区域中没有任何反应。

有没有人有解决办法?我尝试了各种快捷键,但都失败了。 我使用 macOS Big Sur(版本 11.5.2),Isabelle2021。 (键盘为日式。)

jEdit 和 jEdit Isabelle 插件都有一堆与 Emacs 样式键冲突的默认设置,因此您必须确保取消绑定与您要添加的键绑定冲突的任何现有键绑定 并确保将它们从主要和次要 中删除。您必须从标准键绑定开始手动执行此操作,因为 jEdit 提供的 Emacs 键绑定集很糟糕——更糟糕的是,默认 Isabelle 键绑定的 none 包含在其中。下次启动 jEdit 时,它会打开一个对话框,提示存在键绑定冲突,您必须确认刚刚添加的那些。

因为这有点面倒くさい 既要解释又要自己动手,而且没有一种简单的方法来显示我对默认值所做的更改,这里是 my jEdit properties and Emacs-like keymap file。使用它们:

  1. 退出 jEdit。

  2. 将键盘映射文件复制到 $JEDIT_SETTINGS/keymaps/(运行 isabelle getenv JEDIT_SETTINGS 来自您的 shell)。

  3. 如果您只想使用我的所有设置,请将属性文件复制到 $JEDIT_SETTINGS/(为什么不呢,我很有品味 :))。否则,grep -E '(^keymap\.current|\.shortcut2?\.ignore)=' properties 并自己将这些行添加到 $JEDIT_SETTINGS/properties

  4. 启动 jEdit 并解决它抱怨的任何键绑定冲突。

我的设置类似于 Emacs,保留了尽可能多的默认 Isabelle 键,但 Emacs 的东西大多优先:例如,Ctrl+bbackward-char 而不是 Isabelle 完成,而 Ctrl+emove-end-of-line 而不是被窃取jEdit 的一堆键序列。

Ctrl+SPC 应该激活标记,但请注意,在执行其他命令之前,该区域不会突出显示--尝试 Emacs kill ring save(绑定到 M+w;那可能是 Opt+w 在你的 Mac 键盘上)。

我已经 运行 macOS 很久了——我目前在 Linux 上使用 Isabelle/jEdit 通过远程 X11 和 X 服务器 运行ning 在 [=85] =]--但它在 macOS 上应该没有任何不同,即使是日文布局,除非您拥有的其他一些程序在键到达 jEdit 之前正在吃键。 (我认为在 macOS 上 Ctrl+SPC 默认会切换 IME/keyboard 布局,对吗?您可能想要更改 macOS 设置或 jEdit 中的设置标记绑定。)


在 Java SE 16 和 17 上,您可能会从 jEdit 中收到类似以下内容的错误:

unknown error: Unable to make public java.lang.AbstractStringBuilder java.lang.AbstractStringBuilder.append(java.lang.String) accessible: module java.base does not "opens java.lang" to unnamed module

要解决此问题,请将其添加到您的 $ISABELLE_HOME_USER/etc/settings:

JEDIT_JAVA_OPTIONS="$JEDIT_JAVA_OPTIONS --add-opens=java.base/java.lang=ALL-UNNAMED"

--add-opens 内容与 this Java runtime change 相关,但您无需关心任何这些即可使用 Isabelle。)