Emacs EmacClient-eval“;(插入“某物”);他不适合我
我最近升级到了Ubuntu10.04,它附带了Emacs23。我需要Jabref将引文推送到Emacs 然而,尽管我安装了Jabref插件通过EmacClient推送引文,但它不起作用 我做了测试,并阅读了一些Emacs Lisp简介 有些命令确实有效,例如,如果我键入(在控制台中): emacs窗口切换到该缓冲区。但是,如果我发出insert命令:Emacs EmacClient-eval“;(插入“某物”);他不适合我,emacs,Emacs,我最近升级到了Ubuntu10.04,它附带了Emacs23。我需要Jabref将引文推送到Emacs 然而,尽管我安装了Jabref插件通过EmacClient推送引文,但它不起作用 我做了测试,并阅读了一些Emacs Lisp简介 有些命令确实有效,例如,如果我键入(在控制台中): emacs窗口切换到该缓冲区。但是,如果我发出insert命令: emacsclient --eval "(insert \"do you see me?\")" 当前缓冲区中未插入任何文本 Emacs 2
emacsclient --eval "(insert \"do you see me?\")"
当前缓冲区中未插入任何文本
Emacs 23是否更改了有关插入的内容?Emacs 23更改了有关EmacClient和server的内容 表达式在缓冲区“*server*”(带前导空格)中求值。。。因此,您必须在插入前更改缓冲区:
emacsclient --eval "(with-current-buffer \"*scratch*\" (insert \"foo\"))"
您正在插入服务器缓冲区,您很可能需要:
emacsclient --eval '(with-current-buffer "*scratch*" (insert "do you see me?"))'
谢谢我花了一段时间阅读Emacs Lisp简介,在测试缓冲区名称函数时,看到了“服务器”名称。所以我想我应该把我的问题重新表述成一个更难的问题:我能把文本插入我在当前帧上编辑的“缓冲区”吗?我是否应该将此作为单独的问题写下来并关闭此问题?我发现了:(使用当前缓冲区(窗口缓冲区)(插入“我确实看到你了!”)
emacsclient --eval '(with-current-buffer "*scratch*" (insert "do you see me?"))'