之前是manjaro+spacemacs
现在切换到windows感觉spacemacs有点慢了,想试试doom
doom(develop)+GNU Emacs 28.0.50 (build 1, x86_64-w64-mingw32) of 2020-02-10
安装完以后,发现rg无法使用,提示error 2
网上搜了一下,发现之前类似的问题与counsel-rg相关,启动后,counsel-rg-base-command如下:
("rg" "-M" "240" "--with-filename" "--no-heading" "--line-number" "--color" "never" "%s" "--path-separator" "//" ".")
尝试修改counsel-rg-base-command参数,没有作用
doom配置中切换ivy为helm,也没有效果
manjaro上试了下doom,同样配置是没问题的
windows命令行直接rg是没问题的,在spacemacs中也是正常的
1 个赞
我在windows 7下是可以用的,用的ivy。emacs 27.09,rg是小一点的那个版本。你这个错误好像见过,可能是传的参数问题。你可以调试跟踪一下看看传了些什么参数到rg
嗯,我用processmonitor看了命令行参数,和配置的是一致的,且在cmd里面执行是ok的
修改配置只使用rg命令不带参数,也是同样的error
你用默认的doom配置试试看,windows下是可正常用的
wsw
2020 年7 月 25 日 09:13
5
“–path-separator” “//”
的问题。
这个//是适合在msys2的bash里启动emacs的。
cmd/powershell的话,得就用/
确定是这个原因造成,修改下面代码,把"//“改成”/"就可以用了。
;; REVIEW Fix #3215: prevents mingw on Windows throwing an error trying to
;; expand / to an absolute path. Remove this when it is fixed upstream
;; in counsel.
(when (and (memq system-type '(windows-nt ms-dos))
(listp counsel-rg-base-command)
(member "--path-separator" counsel-rg-base-command))
(setf (cadr (member "--path-separator" counsel-rg-base-command))
"//"))
我不懂lisp,本来准备直接setq修改counsel-rg-base-command,后来发现这个变量是一个list
查了下list怎么修改,通过下面的代码可以实现不修改counsel.el文件
(after! counsel
(if (and (eq system-type 'windows-nt)
(fboundp 'w32-shell-execute))
(setcar (member "//" counsel-rg-base-command) "/") ;
)
)
2 个赞
wsw
2020 年8 月 21 日 09:15
10
doom已经修复了,使用最新develop就行。虽然它一直引入新的bug。。。
1 个赞
不行啊,折腾了一晚上,配置counsel-rg-base-command,无论是/还是//都无法使用。还有flycheck怎么弄也用不了。。求助。。
wsw
2020 年9 月 7 日 00:51
14
用带counsel的最小环境配置试了一下,结果在这里https://github.com/hlissner/doom-emacs/issues/3038#issuecomment-687503164
我这边发现的问题是ivy-prescient的锅。应该是ivy +prescient
后,构造的搜索正则,交给rg去执行,出错。