如何从mac终端打开emacs gui/ide?

Aus*_*n A 18 ide macos emacs terminal user-interface

我正在尝试在终端外的emacs上打开文件.当我编码而不是通过终端进行编码时,我更喜欢gui/ide环境.我最初认为打字emacs filename.py会通过Emacs.app打开该文件,但它只允许我通过终端编辑文件.当这不起作用时,我考虑编辑我的主目录中的.profile和.emacs文件,但这无济于事.

也许这比我读过的更直观,但我似乎无法弄明白.任何帮助表示赞赏.

kat*_*ugh 36

假设您从Homebrew安装了Emacs,如下所示:

brew install emacs --with-cocoa
Run Code Online (Sandbox Code Playgroud)

只需键入以下命令即可从终端打开Emacs.app:

open -a Emacs filename.py
Run Code Online (Sandbox Code Playgroud)

如果您希望在同一帧中打开所有文件而不是新帧,请将其放入您的.emacs文件中:

(setq ns-pop-up-frames nil)
Run Code Online (Sandbox Code Playgroud)

  • 更新问题。我没有使用自制软件来安装 emacs,我从 [link][www.emacsforosx.com] 中获取了它。但是,我只是尝试了 `open -a Emacs filename.py` 并且它起作用了。它在单独的 Emacs 窗口中打开了 Emacs ide 窗口和 filename.py。叫我挑剔,如果我想让命令 `emacs filename.py` 做同样的事情,我该怎么办?这可能是@shosti 与 emacsclient 达成的​​共识。感谢@katspaugh、@qaphla 和@shosti! (2认同)

qap*_*hla 5

要执行您想要的操作,您需要找到包含在 Emacs.app 中的实际二进制文件的位置,并将其用作命令而不是 emacs。最有可能的是,它在

/path/to/Emacs.app/Contents/MacOS/Emacs
Run Code Online (Sandbox Code Playgroud)

其中,如果您的 Applications 文件夹中有 Emacs.app,这将是典型的

/Applications/Emacs.app/Contents/MacOS/Emacs
Run Code Online (Sandbox Code Playgroud)

要使用更短的命令来设置它,您可以尝试将以下行添加到您的 .profile(我不知道您使用的是什么 shell),或者它对您的 shell 具有的任何等效项(这适用于 bash 和 zsh,至少):

alias emacsgui='/Applications/Emacs.app/Contents/MacOS/Emacs'
Run Code Online (Sandbox Code Playgroud)


sho*_*sti 5

从终端打开Emacs文件的最佳方法是使用emacsclient命令,该命令将打开现有Emacs应用程序中的文件(防止启动时间).如果您使用的是OSX并且通过Homebrew安装了Emacs,emacsclient则已经设置了二进制文件.(在你的Emacs配置中,你必须包含在(server-start)某处.)

如果您确实想要启动新的GUI应用程序实例,则可以设置自己的shell脚本并将其PATH放在现有emacs二进制文件之前的某个位置.听起来你正在使用Homebrew,它将emacs二进制文件设置为以下shell脚本:

#!/bin/bash
/usr/local/Cellar/emacs/24.3/Emacs.app/Contents/MacOS/Emacs -nw  "$@"
Run Code Online (Sandbox Code Playgroud)

-nw是阻止Emacs在GUI模式下打开的原因.您可以创建自己的emacsshell脚本并省略-nw:

#!/bin/bash
/usr/local/Cellar/emacs/24.3/Emacs.app/Contents/MacOS/Emacs "$@"
Run Code Online (Sandbox Code Playgroud)


gro*_*lex 5

解决此问题的现代方法是使用Homebrew Cask安装 Emacs :

brew cask install emacs
Run Code Online (Sandbox Code Playgroud)

来源:Homebrew 项目负责人 Mike McQuaid 的评论,内容如下:

不接受对 Emacs 的 Cocoa 支持。这是由 提供的brew cask install emacs