我用C-c c录入完一条todo项目后,再按C-c C-c时,录入的buffer自动关闭了,但是却弹出了一个新的buffer,里面有如下提示:
Warning (with-editor): Cannot determine a suitable Emacsclient
Determining an Emacsclient executable suitable for the
current Emacs instance failed. For more information
please see https://github.com/magit/magit/wiki/Emacsclient.
查看我的gtd文件可以发现刚刚录入的todo项目已经有了。
我不明白为什么会有这个warning,看给出的提示是关于magit的,可我的magit其实用的好好的呀!?
org agenda capture跟magit没啥关系吧。
我的版本:GNU Emacs 25.1.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
with-editor
需要emacs server是开着的。
(unless (server-running-p)
(server-start))
或者 daemon 模式就可以
这个应该不是org capture
的问题哦
with-editor
是什么,很奇怪我的spacemacs配置里并没有。
你说的这两句话在我的.emacs.d/init.el里是有的,该文件的完整内容如下:
(setq gc-cons-threshold 100000000)
(defconst spacemacs-version "0.105.21" "Spacemacs version.")
(defconst spacemacs-emacs-min-version "24.4" "Minimal version of Emacs.")
(if (not (version<= spacemacs-emacs-min-version emacs-version))
(message (concat "Your version of Emacs (%s) is too old. "
"Spacemacs requires Emacs version %s or above.")
emacs-version spacemacs-emacs-min-version)
(load-file (concat (file-name-directory load-file-name)
"core/core-load-paths.el"))
(require 'core-spacemacs)
(spacemacs/init)
(spacemacs/maybe-install-dotfile)
(configuration-layer/sync)
(spacemacs-buffer/display-info-box)
(spacemacs/setup-startup-hook)
(require 'server)
(unless (server-running-p) (server-start)))
难道是上面有多余的语句?
我只在org capture
的时候遇到了这个问题,太诡异了。
Margit 的东西 emacsclient
没有在 、path、里面 应该是
你的意思是emacsclient
可在terminal中运行吗?那它的路径是哪里呢?
我的不行:
X@XX:~$ emacsclient
emacsclient: command not found
X@XX:~$ echo $PATH
/home/ziyuan/anaconda3/bin:/home/ziyuan/anaconda2/bin:/home/ziyuan/MySoft/emacs/src:/usr/local/texlive/2016/bin/i386‐linux:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
我没有在我的电脑里找到emacsclient, 看来是丢失了,
网上有人问过一样的问题 ,
这里给出了一种解决方案。
但是,我的Emacs是git编译安装的,版本是25.1.50.1,运行apt-file find bin/emacsclient
我得到的输出是:
emacs23-bin-common: /usr/bin/emacsclient.emacs23
emacs24-bin-common: /usr/bin/emacsclient.emacs24
别人说的是:
由于我使用的Emacs版本是 24.3.1,所以我用如下命令重装Emacs:
sudo apt-get install --reinstall emacs24-bin-common
然后,emacsclient命令就回来啦!
那对于我的而言,就没有我能运行的emacsXX-bin-common版本啊!
搞不好就在你编译的 --prefix
bin 里面。不知道什么apt-file
确实就在编译的路径里,不过是
--prefix
/lib-src里面。
我第一次注意到emacsclient
,不明白其原理,不知道我遇到的问题有没有好的解决方式。
终于可以了,要改exec-path
:
(setenv "PATH" "/usr/local/bin:path to emacsclient/lib-src");;仅为示例,应用前需修改为正确路径
(setq exec-path (split-string (getenv "PATH") path-separator))
想顺便问一下,怎样把系统的PATH保留在exec-path中(不是采用复制到上面第一句的方式)?
可能是我没表达清楚。
我只有一个emacs版本,当然它的可执行文件路径是在系统的$PATH里的。
现在我发现系统的$PATH并不等同于Emacs的exec-path
,需要使用这两句来设置exec-path:
我是想问emacs里有没有哪个lisp语句能直接让exec-path
等同于系统的$PATH(我是linux系统)。
这并不是说我装了emacs23和emacs24,apt-file find xxx
的作用是找到 若要安装xxx,系统缺失的东西。