emacsclient -eval“(insert \”something \“)”对我来说不起作用

时间:2010-05-10 13:44:44

标签: emacs

我最近升级到了Emacs 23附带的Ubuntu 10.04。我需要Jabref将引用推送到Emacs。

然而,尽管我安装了Jabref插件来通过emacsclient推送引用,但它无效。

我做了测试,并阅读了一些Emacs Lisp Intro。

有些命令可以正常工作,例如我输入(在控制台中):

  emacsclient --eval "(switch-to-buffer \"*sratch*\")"

emacs窗口切换到该缓冲区。但是,如果我发出一个插入命令:

  emacsclient --eval "(insert \"do you see me?\")"

当前缓冲区中没有插入任何文本。

Emacs 23是否改变了插入内容?

2 个答案:

答案 0 :(得分:4)

哟正在插入服务器缓冲区,你很可能想要:

emacsclient --eval '(with-current-buffer "*scratch*" (insert "do you see me?"))'

答案 1 :(得分:2)

Emacs23改变了有关emacsclient和服务器的内容。

表达式在缓冲区“* server *”中评估(带有前导空格)...所以你必须在插入之前更改缓冲区:

  emacsclient --eval "(with-current-buffer \"*scratch*\" (insert \"foo\"))"