请教:在终端输入 emacs -Q 指令有问题

提示 emacs 命令找不到。我用的是 macOS,emasc-plus 28.1 image

Mac看你是怎么安装的,需要把emacs添加到path里,或者直接访问 /Application/Emacs.app/Content/MacOS/emacs (路径可能不太对,你可以找一下)

多问一句, 怎么样子把 emacs 添加到 path 里?

export PATH=xxxxx:PATH

1 个赞

子龙应该是想说 export PATH=xxxxx:$PATH,手滑少了个$符号。

估计是因为你安装的 Emacs 没提供启动脚本。建议你去看看 emacs-plus 官网的说明。

我是用 macports 安装的 Emacs,也是没提供启动脚本的。所以我就手动加了一个。

把下面的代码保存为 emacs,并且给执行权限(可以使用 chmod +x ),然后拷贝到 Emacs 的安装目录下:
一般是 /Applications/Emacs.app/Contents/MacOS/bin

我的是 /Applications/MacPorts/Emacs.app/Contents/MacOS/bin

#!/usr/bin/env bash

resolve_link() {
  "$(command -v greadlink || command -v readlink)" "$1"
}

abs_dirname() {
  local path="$1"
  local name
  local cwd
  cwd="$(pwd)"

  while [ -n "$path" ]; do
    cd "${path%/*}" || exit 1
    name="${path##*/}"
    path="$(resolve_link "$name" || true)"
  done

  pwd
  cd "$cwd" || exit 1
}

exec "$(dirname "$(abs_dirname "$0")")/Emacs" "$@"

这个脚本来源于 build-emacs-for-macos/emacs-cli.bash at master · jimeh/build-emacs-for-macos · GitHub

然后再把 /Applications/Emacs.app/Contents/MacOS/bin 路径加入 PATH 就可以了。

我是通过下面的命令直接把自己创建的 emacs 链接到 /usr/local/bin 下,因为 /usr/local/bin 本身就在 PATH 里面了 。
(如果没有的话可以在 .zshenv 中写入 export PATH="/usr/local/bin:$PATH"

ln -s /Applications/Emacs.app/Contents/MacOS/bin/emacs /usr/local/bin/emacs

这样就可以在终端找到 Emacs 了。可以试试执行 emacs --version

1 个赞