我最近升级到了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是否改变了插入内容?
答案 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\"))"