我最近买了十年来的第一台 Mac,正在配置它。我是 Emacs 用户,并确定我只想要普通的 Emacs而不是 Aquamacs,这样我就可以使用其他操作系统的现有配置。我尝试遵循我在网上找到的许多操作方法(例如我下载 Emacs 的站点上的这个、这个和这个),并尝试以多种方式组合这些部分,但从未使事情进入一种状态,甚至接近我习惯/希望的状态:
C-x #
,尽管我对此没有深入的了解。我怎么能配置 Emacs 来表现得像这样?
让 Finder 以我想要的方式(#2)在 Emacs 中打开内容让我特别困惑,因为我发现的指南通常会创建许多别名、Applescripts、bash 脚本等,我不确定我想告诉 Finder 用来打开文本文件。
谢谢!
A. @lawlist 询问,“即使存在现有框架,当您从终端打开新文件时,是否默认打开新框架?” 答案是,如果我按照此处所述在启动时启动服务器,打开一个框架,然后通过键入 打开一个文件/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
,我可以在现有框架中打开该文件。如果当前没有打开的框架,我必须使用“-nc”,或者当我尝试打开文件时什么也没有发生。
B. @lawlist 询问,“您希望守护进程在登录时运行,还是在登录后手动加载 Emacs 就足够了?” 手动运行就好了。
Lri*_*Lri 10
要在现有的框架,而不是一个新的帧Emacs.app打开的文件,添加(setq ns-pop-up-frames nil)
到像一个配置文件~/.emacs
。
您可以使用open -a emacs file
或从终端打开文件emacsclient -n file
。如果 Emacs.app 没有打开但有一个Emacs --daemon
进程,由于某种原因emacsclient -n file
不起作用但emacsclient -nc file
可以。
确保您使用emacsclient
包含在您使用的 Emacs 版本中的二进制文件,例如/Applications/Emacs.app/Contents/MacOS/bin/emacsclient
,或者/usr/local/bin/emacsclient
如果您使用 Homebrew 安装了 Emacs。
要在登录时启动 Emacs 服务器,例如将此 plist 保存为~/Library/LaunchAgents/my.emacsdaemon.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>my.emacsdaemon</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Emacs.app/Contents/MacOS/Emacs</string>
<string>--daemon</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/> <!-- run the program again if it terminates -->
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
plist 会在您下次登录时自动加载,但您可以通过运行launchctl load ~/Library/LaunchAgents/my.emacsdaemon.plist
.
编辑:我仍然不知道为什么人们将文件类型与 AppleScript 应用程序相关联,而不仅仅是 Emacs.app。kuzzooroo 的回答中的脚本也可以写成 shell 脚本:
macos=/Applications/Emacs.app/Contents/MacOS
if pgrep -qf 'Emacs.*--daemon'; then
[[ $($macos/bin/emacsclient -e '(<= 2 (length (visible-frame-list)))') = t ]] && args=-nc || args=-n
else
$macos/Emacs --daemon
args=-nc
fi
$macos/bin/emacsclient $args "$@"
open -a /Applications/Emacs.app
Run Code Online (Sandbox Code Playgroud)
您可以使用Platypus将脚本保存为应用程序:
我刚开始使用 Emacs,但我有一个完全不同的设置。我制作了自己的 Emacs 应用程序,方法是复制 iTerm.app,更改 Info.plist 中的 CFBundleIdentifier,以便应用程序使用不同的首选项文件,并将默认命令设置为/usr/local/bin/emacs
. 我已经加入(server-start)
到~/.emacs
我在登录时打开自定义Emacs的应用程序。我使用 Platypus 创建了一个运行的应用程序,emacsclient -n "$@";open -b my.emacs
并将其设为文本文件的默认应用程序。
归档时间: |
|
查看次数: |
4893 次 |
最近记录: |