![从终端调用时强制 emacs 使用“-nw”运行](https://linux22.com/image/42036/%E4%BB%8E%E7%BB%88%E7%AB%AF%E8%B0%83%E7%94%A8%E6%97%B6%E5%BC%BA%E5%88%B6%20emacs%20%E4%BD%BF%E7%94%A8%E2%80%9C-nw%E2%80%9D%E8%BF%90%E8%A1%8C.png)
笔记:这个问题以前可能被问过(我想我在某个地方看到过),但快速搜索没有发现任何内容。
我想告诉大家从 shell 运行命令时的区别。
Emacs 可以使用标志来初始化-nw
以禁用桂窗口,我希望这是默认行为。但是,如果emacs
是从非 shell 环境运行,(例如,从Open With
您的文件管理器, A桌面配置热键,甚至从巴什伦),不应该用该-nw
标志来调用它。
更新:这应该是一个全局变化,sudo emacs
在终端中运行不应该突然打开一个图形用户界面。我在哪里进行这些更改?
答案1
说这个:
$ echo "alias emacs='emacs -nw'" >> ~/.bashrc
注销,然后重新登录,您将得到您所要求的行为。该别名仅适用于 Bash。
答案2
我想你想确定命令是否在终端。
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
如果您希望在运行 Emacs 时始终发生这种情况,请将其放入脚本中并调用该脚本。/usr/local/bin/emacs
如果您希望emacs
优先emacs
于/usr/bin
.
请注意,要以 root 身份编辑文件,您应该使用sudoedit
(好处:编辑器会像您一样运行,以便您获得所有设置;编辑完成后,编辑的文件会自动到位,从而减少发生事故的可能性)。您还可以以 root 身份直接在 Emacs 中编辑文件,方法是打开/sudo::/path/to/file
.