注意:这个问题之前可能有人问过(我想我在某处看到过),但快速搜索并没有发现任何东西。
当从 shell 运行命令时,我想说明不同之处。
可以使用-nw标志初始化 Emacs以禁用gui窗口,我希望这是默认行为。但是,如果emacs从非 shell 环境运行(例如,从Open With您的文件管理器、桌面配置的热键或什至从bashrun 运行),则不应使用-nw标志调用它。
更新:这应该是全局更改,sudo emacs在终端中运行不应该突然打开一个gui。我在哪里进行这些更改?
说这个:
$ echo "alias emacs='emacs -nw'" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
注销,然后重新登录,您将获得您所要求的行为。别名仅适用于 Bash。
我认为您想确定命令是否在终端中运行。
if [ -t 2 ]; then
# Standard error is a terminal
emacs -nw "$@"
elif [ -n "$DISPLAY" ]; then
# An X display is available
xterm -e emacs -nw "$@"
else
# We have nothing
emacs --daemon "$@"
fi
Run Code Online (Sandbox Code Playgroud)
如果您希望在运行 Emacs 时总是发生这种情况,请将其放入脚本中并改为调用该脚本。/usr/local/bin/emacs如果您希望脚本emacs优先emacs于/usr/bin.
请注意,要以 root身份编辑文件,您应该使用sudoedit(好处:编辑器会像您一样运行,因此您可以获得所有设置;完成编辑后,编辑的文件会自动放置到位,从而减少发生事故的可能性)。您还可以直接在 Emacs 中以 root 身份编辑文件,方法是打开/sudo::/path/to/file.