求助各位大佬。
我用的是Spacemacs的develop分支,但我的 counsel-ag
counsel-git-grep
一直都不正常。情况是这样的:
打开Emacs后,第一次用这些功能没有任何问题,敲了第三个字母后立刻会出结果。但第一次用后半分钟之内,这些搜索就再也不会工作了。
具体表现是,你敲了关键词后,什么都不会发生,一切处于静止状态。CPU也完全不会工作,0%占用。
我在网上搜了很多次,没有看见类似的情况。有人说是工程太大搜索本身就慢,但我的情况不是。50行的工程也完全不搜。并且,每次重启Emacs第一次用都在前10s内不会有问题,大工程也立刻会有搜索结果,但就是只能维持30s不到。
我试图去看代码,但Elisp水平太差,无法找到原因。只有一个猜想,counsel搜索是异步的,会不会这中间发生死锁,导致后来再也不工作了。
在此求助各位大佬指点,如何能够定位问题,感谢!
系统:Ubuntu 16.04
Emacs:26.1和27.0.50都是一样的问题
Spacemacs:develop分支
1 个赞
counsel ag 不如helm-ag好用,建议使用 helm-ag,问题会少很多, helm-ag可以使用rg做为后端,曾经执着于remove helm,只使用ivy,但是helm-ag还是丢不掉。
2 个赞
查看下对应设的counsel-ag
, counsel-rg
的bash命令 是不是在terminal下工作正常。我是自己都在config里重新设了下。因为作者用的是Linux,而mac 和 win下fork过来的ag, rg这些命令格式/语法稍有不同的(参数不一样,甚至少些参数功能)。总知,你用哪个counsel搜索命令有问题(有好多个-ag, -pt, -rg, -ack啥的),就去测试它对应设的命令termianl下能不能工作。
比如参考我修改的,Mac下能用的:(*is-mac*
是我判断是不是mac os)
(setq counsel-grep-base-command
"rg -i -M 120 --no-heading --line-number --color never '%s' %s"
counsel-git-cmd "rg --files"
counsel-rg-base-command
"rg -i -M 120 --no-heading --line-number --color never %s .")
;; counsel-rg-base-command
;; "rg -zS --no-heading --line-number --color never %s ."
;; counsel-ag-base-command "ag -zS --nocolor --nogroup %s"
;; counsel-pt-base-command "pt -zS --nocolor --nogroup -e %s"
;; fix the bug for ivy-occur in OSX
(when *is-mac*
(setq counsel-find-file-occur-cmd
"gls -a | grep -i -E '%s' | tr '\\n' '\\0' | xargs -0 gls -d --group-directories-first"))
)
感谢建议。不过我的 counsel-ag-base-command
在Ubuntu下没有问题,非常快。另外,我在OP里提到了,打开Emacs后第一次搜索一点儿问题也没有,不工作是30s之内被触发的。同样的问题在 counsel-git-grep
也是,而对应的命令我以前也试过。所以我这儿的问题不是出在本身的搜索命令本身。
我现在 helm
layer直接不工作 ,手动安装 helm-ag
也不行,哪天有时间折腾一下山人的配置吧。
终于找到原因了。pyenv配上zsh会导致counsel系列的搜索hang住(刚刚验证了v1.2.15最新release依旧存在),具体原因不详,我已经想了办法绕过这个问题了。
1 个赞