组织模式中的内联代码

时间:2013-04-24 08:15:25

标签: emacs markdown org-mode

Markdown允许embedded code。如何在org-mode

中完成此操作

我知道源代码块:

#+begin_example
blah-blah
#+end_example

但我想要的是这样的事情(显然,使用正确的语法,我不知道):

This is `embeded code`.

这可以在org-mode完成吗?不可能在文档中找到...

3 个答案:

答案 0 :(得分:100)

虽然monospaced对大多数情况都足够好,但内联代码块的格式为src_LANG[headers]{your code}。例如,src_xml[:exports code]{<tag>text</tag>}

编辑:内联代码的代码突出显然是可能的,虽然修补了org.el本身:这里给出的答案https://stackoverflow.com/a/20652913/594138与广告一样有效,转向

- Inline code src_sh[:exports code]{echo -e "test"}

enter image description here

在html-export中。并且在这篇文章https://stackoverflow.com/a/28059832/594138中获胜的答案在不需要修补org.el的情况下实现了相同的效果,但如果您在编辑期间不喜欢光学器件,则必须熟练。

答案 1 :(得分:89)

您可以将文本括在=~符号中,使其以等宽字体排版并逐字导出(这意味着它不会针对org特定语法处理):

This is =verbatim text= or ~code~.

您可以在manual的相关部分找到有关org-mode标记元素的所有信息。

答案 2 :(得分:0)

我写了一个函数,我希望它有助于管理内联代码。

  1. 您将此代码放在您的初始化文件中
(defun org-insert-inline-code()
  "This function insert inline code `src_lang{inline code}' \nYour buffer must contain  '#+PROPERTY: header-args:lang    :exports code' where `lang` can be python or an other programming language."
  (interactive  (if (use-region-p)
            (progn
              (setq start (region-beginning))
              (setq end (region-end))
              (goto-char start)
                      (if (re-search-backward "^#\\+PROPERTY: header-args:[^[:blank:]]*" 1 t 1)
                          (progn
                            (forward-char 24)
                            (setq org-inline-lang (word-at-point))
                    (goto-char start)
                    (insert (concat "src_" org-inline-lang "{"))
                    (goto-char (+ 11 end))
                    (insert "}")                            
                            )))
          (progn
                    (setq start (point))
                    (if (re-search-backward "^#\\+PROPERTY: header-args:[^[:blank:]]*" 1 t 1)
                        (progn
                          (forward-char 24)
                          (setq org-inline-lang (word-at-point))
                  (goto-char start)
                  (insert (concat "src_" org-inline-lang "{} "))
                  (backward-char 2)
                            ))))))

(define-key org-mode-map (kbd "C-M-,") 'org-insert-inline-code)
  1. 您将这种属性放在组织文件中
#+PROPERTY: header-args:python    :exports code

所需的[:exports code]就是这样给出的,编程语言也可以通过函数来​​识别。

  1. 插入符合 C-M-, 的代码(函数然后搜索回来读取 PROPERTY 行中的语言并插入正确的命令)。