【问题标题】:Emacs org-mode with Java syntax highlighting?带有Java语法突出显示的Emacs org-mode?
【发布时间】:2015-01-22 01:34:09
【问题描述】:

我想使用 Emac 的 org 模式来记录 java sn-ps。 我希望 java sn-ps 突出显示语法。

我尝试在次要模式下运行 Org-mode 并在主要模式下运行 Java-mode,但我发现这缺少很多 Org-Mode 功能(例如链接)。 我宁愿在主要模式下运行 Org-mode,并在找到 java 语法时使用一些次要模式来执行 java 语法高亮。

我宁愿避免 #+begin_src 业务,因为我的文件会充满这些。

这可能吗?

[Edit] in 正在考虑无标题和非 org-items 的软语法突出显示。即一般段落正文?

【问题讨论】:

  • “我宁愿避免 #+begin_src 业务,因为我的文件会充满这些。” 那么您希望如何将 Java 代码与 Org 内容分开呢?也许您应该在问题中添加一个示例来说明您要解决的问题。
  • 感谢您的提问。我在编辑中添加了它。
  • 组织模式不能这样工作。您可以使用#begin_src#end_src 获得语法高亮显示,但您明确表示您不想使用该功能。 (请注意,这实际上不仅仅是语法高亮;C-' 在这样的块中打开了一个新缓冲区,因此您可以在其主要模式下编辑源代码。)
  • 但对我来说,在编辑文件时,#begin_src 块中没有语法高亮显示吗?我确实尝试过启用 org-src-fontify-natively,如此处所述:stackoverflow.com/questions/10642888/… 你能在 editing 文本时在 org 模式下获得语法高亮吗?
  • 您使用的是什么版本的 Emacs (M-x version) 和 Org 模式 (M-x org-version)?当您手动将org-src-fontify-natively 设置为t 时,emacs -Q 是否仍然存在?如果您在代码块内手动调用 org-src-fontify-block 会怎样?它适用于我的稳定版本,例如Ubuntu 下的 Emacs 24.3.1 和 Org 7.9.3f,但在当前的主干构建下(Emacs“25.0.50.1”和 Org“8.2.10”)我得到org-mode fontification error

标签: java emacs syntax-highlighting


【解决方案1】:

据我所知,在 Org 模式下支持语法高亮代码块的唯一机制是您已经提到的 source code block 功能。

org-src-fontify-natively 设置为t 应启用此类块的语法突出显示:

(setf org-src-fontify-natively t)

代码块应如下所示:

* Pretty sweet Org heading

  This is an org-mode file, which is cool for lots of reasons, e.g.

  - it's Emacs, and
  - it supports syntax-highlighted blocks
    - (note that this requires the variable ~org-src-fontify-natively~
      to be set to ~t~)

#+BEGIN_SRC java
  public class HelloWorld {
      public static void main(String[] args) {
          System.out.println("Hello, World");
      }
  }
#+END_SRC

一些提示:

  • 启动新代码块的最快方法是type <s and then hit Tab。这扩展为

    #+BEGIN_SRC |
    
    #+END_SRC
    

    光标由| 表示,因此您只需键入java 即可开始编辑。

  • 在这样的块内,org-edit-special, bound to C-c ' by default 将在相应的主模式处于活动状态的单独缓冲区中打开代码块。您可以使用该模式的全部功能,然后再次输入 C-c ' 以更新嵌入式 sn-p。

【讨论】:

  • 非常感谢您的提示!我同意将 begin_src 用于更长的 sn-ps 代码,而不是将它用于非常短的单行代码。提示和 org-edit-special 很有帮助!。
  • <s 之类的热键在 Emacs 27.1 中似乎不起作用
猜你喜欢
  • 2018-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多