Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/emacs/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 23,EmacClient参数?_Emacs_Emacs23 - Fatal编程技术网

Emacs 23,EmacClient参数?

Emacs 23,EmacClient参数?,emacs,emacs23,Emacs,Emacs23,我最近安装了Emacs 23(在OS X Leopard上)并试用了Emacs服务器。我尝试了两种方法:(1)将(服务器启动)放在.emacs文件中,(2)在终端运行emacs——守护进程(在单独的试验中;不是同时)。在任何一种情况下,当我已经打开了一个emacs帧,并尝试使用EmacClient-t、-tty或-nw在OS X终端中打开一个单独的文件时,该文件总是在现有帧中打开,而不是在终端中打开,如下所述: 但是,EmacClient-c的工作原理与预期一致。你知道会发生什么事吗 多谢-

我最近安装了Emacs 23(在OS X Leopard上)并试用了Emacs服务器。我尝试了两种方法:(1)将(服务器启动)放在.emacs文件中,(2)在终端运行emacs——守护进程(在单独的试验中;不是同时)。在任何一种情况下,当我已经打开了一个emacs帧,并尝试使用EmacClient-t、-tty或-nw在OS X终端中打开一个单独的文件时,该文件总是在现有帧中打开,而不是在终端中打开,如下所述:

但是,EmacClient-c的工作原理与预期一致。你知道会发生什么事吗


多谢-Stephen

您确定使用的是正确的“EmacClient”二进制文件吗?您将需要
/Applications/Emacs.app/Contents/MacOS/bin/emacsclient
,默认情况下,它将不在您的路径中。如果您只是从命令行调用一个裸
emacsclient
,那么您将从Apple提供的Emacs 22.1中获得
emacsclient

如果运行
emacsclient--version
并获得以下结果:

$ emacsclient --version
emacsclient 22.1

您没有得到正确的版本。

如果您安装了二进制
Emacs.app
,则应在包中使用可执行文件。例如:

$ /Applications/Emacs.app/Contents/MacOS/Emacs -nw
包中还有一个
bin
目录:

$ cd /Applications/Emacs.app/Contents/MacOS/bin
$ ls -la
total 1488
drwxr-xr-x@ 19 ayman   admin     646 Aug 16 02:33 .
drwxr-xr-x@  5 ayman   admin     170 Aug 16 02:33 ..
-rwxr-xr-x@  1 ayman   admin   39704 Aug 16 02:33 b2m
-rwxr-xr-x@  1 ayman   admin  236412 Aug 16 02:33 ctags
lrwxr-xr-x   1 ayman   admin      18 Aug 24 12:54 cvtmail -> ../libexec/cvtmail
lrwxr-xr-x   1 ayman   admin      21 Aug 24 12:54 digest-doc -> ../libexec/digest-doc
-rwxr-xr-x@  1 ayman   admin  122124 Aug 16 02:33 ebrowse
-rwxr-xr-x@  1 ayman   admin   72188 Aug 16 02:33 emacsclient
-rwxr-xr-x@  1 ayman   admin  232344 Aug 16 02:33 etags
lrwxr-xr-x   1 ayman   admin      19 Aug 24 12:54 fakemail -> ../libexec/fakemail
-rwxr-xr-x@  1 ayman   admin    7288 Aug 16 02:26 grep-changelog
lrwxr-xr-x   1 ayman   admin      15 Aug 24 12:54 hexl -> ../libexec/hexl
lrwxr-xr-x   1 ayman   admin      19 Aug 24 12:54 movemail -> ../libexec/movemail
lrwxr-xr-x   1 ayman   admin      18 Aug 24 12:54 profile -> ../libexec/profile
-rwxr-xr-x@  1 ayman   admin    3977 Aug 16 02:26 rcs-checkin
lrwxr-xr-x   1 ayman   admin      18 Aug 24 12:54 rcs2log -> ../libexec/rcs2log
lrwxr-xr-x   1 ayman   admin      21 Aug 24 12:54 sorted-doc -> ../libexec/sorted-doc
lrwxr-xr-x   1 ayman   admin      28 Aug 24 12:54 update-game-score -> ../libexec/update-game-score
lrwxr-xr-x   1 ayman   admin      17 Aug 24 12:54 vcdiff -> ../libexec/vcdiff
$ 
如果要执行所有命令行操作,只需使用MacPort更新终端版本:

$ sudo port install emacs-app

截至发帖时,它将推送
emacs app@23.0.0\u NS-9.0rc3\u 1

感谢大家的建议和回复-我认为我的解决方案是在我的.bash\u档案中添加以下内容:

## --- emacs ---
alias emacs='/Applications/Emacs.app/Contents/MacOS/Emacs'

## --- emacs client ---
## adapted from http://philipweaver.blogspot.com/2009/08/emacs-23.html

# start a windowed frame
alias ec="/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n -c -a /Applications/Emacs.app/Contents/MacOS/Emacs"

# start a terminal frame
alias em="/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -t -a /Applications/Emacs.app/Contents/MacOS/Emacs -nw"

# do not start a new frame
alias ea="/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n -a /Applications/Emacs.app/Contents/MacOS/Emacs"
我尝试使用emacs--daemon,并按照建议将emacs.app替换为emacs Client.app图标

但是(1)守护进程似乎没有加载我的许多.emacs自定义项,(2)当我退出emacs客户端时,它将完全退出emacs并生成错误


所以我的解决方案是使用上面定义的bash别名;将行(server start)添加到我的.emacs文件中,并将emacs.app图标添加到我的OS X dock中,这样我就可以使用图标或其中一个别名来启动emacs,并在运行实例中打开新文件,我还可以在emacs中使用上面的别名或C-X C-f(或C-X b)。

我不经常在OS X上使用emacs,但我已经开始在启动启动/窗口管理器时启动
emacs--daemon
,让进程在后台运行。这难道不是一种选择吗

我在我的*shrc文件中使用以下别名:

EDITOR='emacsclient -t'
alias e='emacsclient -n'
alias ew='emacsclient -c -n'
alias et='emacsclient -t'
虽然我必须承认,我主要是从我的窗口管理器中的绑定中生成Emacs帧(你可能会考虑一些类似QuxKEY或QuestLIVER)触发:<代码> EmacSCLITEN-C-N或<代码> Emacs -N-E'(make记住框架)'< /代码>,它触发一个新的org记忆框…
希望这有帮助

当您使用“emacs-Q”启动主emacs,然后在那里执行(服务器启动),然后运行“emacsclient-nw”时会发生什么?感谢您的响应。。。但是同样的事情,emacsclient-nw somefile在emacs-Q创建的相同框架中打开某个文件……您可能会在emacs邮件列表中得到答案-devel@gnu.org,或者从Emacs
M-x报告Emacs bug
提交一个bug。谢谢。。。我得到了EmacClient 23.1,所以看起来情况并非如此,谢谢。我通过bash启动文件中的alias命令将“emacs”和“emacsclient”映射到emacs.app二进制文件。我不想在我的机器上复制emacs,但这可能是一种方法,这样我就可以通过终端打开多个emacs实例。。。