OSX 终端上的 emacs cocoa (23.2) 警告/错误

Hen*_*ler 5 emacs macos

我在 OSX 终端上使用 emacs,刚刚安装了较新的 23.2 版本,它位于 /Applications/Emacs/Content/Emacs,它是一个可执行文件,所以我将它链接到 /usr/bin/emacs,并将旧的移动到 / usr/bin/emacs.old 因为它是一个 bin 文件。

现在,当我使用“emacs -nw”(没有 .emacs 和空的“.emacs.d”)时,它会打开文件,没有语法高亮(在我的例子中是 php,但它是可以理解的),当我关闭它时,有以下错误:

警告:arch 依赖的数据目录 (/Users/david/src/emacs-dev/ftp-versions/emacs-23.2/nextstep/Emacs.app/Contents/MacOS/libexec/emacs/23.2/x86_64-apple-darwin/)不存在。警告:独立于架构的数据目录 (/Users/david/src/emacs-dev/ftp-versions/emacs-23.2/nextstep/Emacs.app/Contents/Resources/share/emacs/23.2/etc/) 不存在。错误:字符集目录 (/Users/david/src/emacs-dev/ftp-versions/emacs-23.2/nextstep/Emacs.app/Contents/Resources/share/emacs/23.2/etc/charsets) 不存在。如果没有字符映射文件,Emacs 将无法正常运行。请检查您的安装!

如果我将我的 .emacs.old 移动到 .emacs 并将我的 .emacs.d.old 的内容放到 .emacs.d,当打开某个文件时,emacs 显示错误,说由于警告它无法打开文件,当我关闭它时,会出现相同的警告。

奇怪的是我的用户名不是 david,因为它看起来像警告“/Users/david/...”,那么它来自哪里?我可以修吗?

谢谢。

编辑:这是我尝试打开 .module 文件时遇到的错误:

无法打开加载文件:警告

编辑2:

我想要的只是“emacs -nw”上的换档选择,如果有人有更好的建议,我会喜欢的。我现在正在使用旧的 emacs,新的 emacs 在 -nw 上太麻烦了。

小智 8

这为我消除了错误:

$ sudo mv /usr/bin/emacs /usr/bin/emacs.old
Run Code Online (Sandbox Code Playgroud)

现在在文本编辑器中编辑 /usr/bin/emacs 并将其粘贴到:

#!/bin/sh

EMACS_PATH=/Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs

if [ $(id -u) = "0" ]; then
    sudo $EMACS_PATH "$@"
else
    $EMACS_PATH "$@"
fi
Run Code Online (Sandbox Code Playgroud)

(将 $EMACS_PATH 替换为 Emacs 二进制文件的实际路径。)最后,使您的 shell 脚本可执行:

$ sudo chmod +x /usr/bin/emacs
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,Cocoa Emacs 不喜欢链接到 /usr/bin/emacs,但是如果您从其实际路径调用它,它会毫无怨言地运行。可能是工作目录问题。

如果有人知道更好的方法来做到这一点,我全神贯注。

编辑:更新脚本以正确处理参数中的引号