从终端调用时强制 emacs 使用“-nw”运行

从终端调用时强制 emacs 使用“-nw”运行

笔记:这个问题以前可能被问过(我想我在某个地方看到过),但快速搜索没有发现任何内容。

我想告诉大家从 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.

相关内容