Emacs markdown-mode 预览错误:"bin/bash: markdown: command not found"

45
我在Fedora 17上使用Emacs 24。我已经安装了markdown-mode,但每当我尝试通过在Emacs中键入C-c C-c mC-c C-c p来导出文件时,就会出现以下错误:

/bin/bash: markdown: command not found

Screenshot of emacs' markdown error message

我读到这可能是路径变量的问题,所以我比较了env变量,通过在命令行中输入$ env和在emacs中输入Esc-! env RET。我发现在这两种情况下,路径变量描述都是相同的。
这是什么错误?我该如何修复它并在emacs中执行markdown预览?

1
你的markdown.pl脚本路径是什么?当你从bash调用markdown脚本时会发生什么? - atlpeg
谢谢您的回复,不好意思,我还是一个在软件内部摸索的新手。您所询问的脚本具有.pl(Perl不是)文件扩展名。我只是按照包本身中包含的说明进行操作,并没有看到除了将.el文件放置在emacs加载路径中并让我的emacs初始化文件知道自动加载之外的其他要求。然后,我尝试了自动方式,通过在emacs中键入“M-x package-install markdown mode”,就好像这是一个依赖问题一样。我该如何检查markdown.pl脚本?后者安装的脚本说不包括任何.pl文件。 - Txe Llenne
1
好的,我明白了。为了进一步参考,我建议阅读这篇文章:http://www.cyberciti.biz/faq/linux-unix-command-not-found-error-and-how-to-get-rid-of-it/。所以,通过在cli中输入`$ which markdown$ which markdown-mode,我得到了以下结果:no markdown-mode in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/txe/.local/bin:/home/txe/bin)`。但是,我仍然停留在同一个点上,所以任何线索都是受欢迎的。 - Txe Llenne
1
好的,我明白了。作为其他寻找相同信息的人的参考,我还应该安装适当的软件包 $ sudo yum install python-markdown2 或者 $ sudo yum install pandoc,它可以像瑞士军刀一样将标记格式的文件转换成另一种格式。无论如何,感谢大家。这篇日志可能对处于同一点的任何人都有用。 - Txe Llenne
1
经过大量测试,Markdown 对我来说是最好的选择。 $ yum install python-markdown2 然后 $ ln -s /usr/bin/markdown2 /usr/local/bin/markdown(再次感谢 RupertPupkin ✪ fedora-forums)。 - Txe Llenne
对于Ubuntu用户来说,这将是 sudo apt-get install markdown - untill
6个回答

53

按照您的喜好安装任何Markdown生成工具,例如pandoc

然后在您的.emacs文件中添加以下行:

(custom-set-variables
 '(markdown-command "/usr/local/bin/pandoc"))

3
温馨提示:就我的情况而言,在使用“apt-get install”安装了pandoc之后,Markdown的命令只是“pandoc”。 - Tony
这对我有用,在我使用“brew install markdown”安装markdown之后。我认为这可以标记为答案。 - Jake
brew install pandoc on OS X - Nic Nilov
可以确认这也适用于Windows。从GitHub获取了Pandoc Windows版本,解压并在Emacs中设置了路径。谢谢! - Baggers

19
当您没有安装 markdown解析器 时,会出现此错误。使用 brew 安装一个很简单。从命令行执行以下操作: brew install markdown 这样应该会得到以下结果:
==> Downloading http://daringfireball.net/projects/downloads/Markdown_1.0.1.zip
######################################################################## 100.0%
  /usr/local/Cellar/markdown/1.0.1: 2 files, 40K, built in 2 seconds

在运行该命令之前,我也遇到了同样的错误。运行该命令后,它会在您的系统上安装一个markdown解析器,然后emacs命令C-c C-c mC-c C-c p按预期工作,分别在另一个缓冲区或浏览器中打开我的markdown文件的HTML版本。

1
这是一个很好的获取 markdown 副本的简单方法,但是您提到的命令在我这里不起作用,直到我将 markdown 解析器映射到我的 ~/.emacs 中的 markdown-command,像这样:(custom-set-variables '(markdown-command "/usr/local/bin/markdown")) - Technetium

8

您只需要选择并安装一个Markdown解析器:

  • rdiscountgem install rdiscount)。
  • python2-markdown(yum install python-markdown2
  • 或其他解析器。

然后,在emacs中:

M-x customize-mode RET markdown-mode

将“Markdown命令”设置为您安装的可执行文件的名称——例如,rdiscount/usr/bin/markdown2

3
  • 将emacs的软件包仓库添加到init.el文件中:
(require 'package)
(add-to-list 'package-archives
             '("melpa-stable" . "https://stable.melpa.org/packages/"))
(package-initialize)
  • 更新软件包:

M-x package-refresh-contents

  • 通过执行以下命令安装emacs主模式markdown-mode:

M-x package-install RET markdown-mode RET

  • 为您的操作系统安装markdown处理器:
brew install pandoc
#OR
sudo apt-get install pandoc
  • 验证 pandoc 安装:
which pandoc
# returns /usr/local/bin/pandoc
  • init.el中映射 Markdown 解析器:
(custom-set-variables
  '(markdown-command "/usr/local/bin/pandoc"))

1
你需要设置markdown-command,这里有一个线程关于如何通过pandoc以github方式显示它。

0
我最近换了一台新机器,看起来在 macOS Monterey(或许之前)中,brew 安装的位置发生了变化。根据 Saurabh 的回答,我将我的 markdown-command 改为 "/opt/homebrew/bin/pandoc"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接