系统:win10
搜索工具:ag, rg
在 spacemacs 里面,启用 helm layer 时,按 SPC /
就可以在当前项目里搜索中文,ag 的话无需设置,rg 的话按照 这篇教程 里的方法,设置了编码 (modify-coding-system-alist 'process "rg" '(utf-8 . chinese-gbk-dos))
之后,也可以在当前项目里搜索中文了。
但是在只启用 ivy layer 时,即使使用上面的设置,按下 SPC /
也始终无法正常搜索中文(英文可以正常搜索),有没有大佬知道这是什么原因导致的,就是因为这个原因才一直使用 helm layer
补充:在外部命令行里可以直接使用 rg 中文关键字
来搜索,但是在 eshell 里使用 rg 命令搜索中文的话会直接没反应
补充:调的是 counsel-ag
这个函数
我啥也没设置 , 中文搜索也没问题啊 , 也是spacemacs
顺便说一下,必须输入3个字才出结果,如果只有两个字的话,最后要补一个空格。
Mac 和 linux 上没问题,win 上有问题
这是用的ivy-posframe
吗?另外,spacemacs也集成doom-modeline
了?
是ivy-posframe,spacemacs也确实带doom-modeline了,早都有了,大佬你这modeline好多人用呢
原来spacemacs支持这么多中mode-line theme了。话说ivy-poframe使用感受如何?
见我在原帖下的评论。 ivy-layer用了start-process-shell-command,这个调用cmdproxy,所以改rg/fd没用
SPC /
在启用 ivy layer的时候具体调用的是哪个命令?
用 C-h k
看了下 SPC /
,调用的是 spacemacs/search-project-auto
,继续看文档,这个函数调用的是 spacemacs/counsel-search
,然后这个函数的源头似乎是 counsel-ag
…
周一去公司看看,可能是 counsel-ag的问题
(defvar spacemacs--counsel-commands
'(;; --line-number forces line numbers (disabled by default on windows)
;; no --vimgrep because it adds column numbers that wgrep can't handle
;; see https://github.com/syl20bnr/spacemacs/pull/8065
("rg" . "rg --smart-case --ignore-file '.rgignore' --no-heading --color never --line-number --max-columns 220 %s %S .")
("ag" . "rg --smart-case --ignore-file '.rgignore' --no-heading --color never --line-number --max-columns 220 %s %S .")
("pt" . "pt -e --nocolor --nogroup %s %S .")
("ack" . "ack --nocolor --nogroup %s %S .")
("grep" . "grep -nrP %s %S ."))
"An alist of search commands and their corresponding commands
with options to run in the shell.")
试试在 user-config
里面加上这个设置, 让counsel-ag 使用rg作为backend
@deerainw
我加上了这段配置,SPC /
还是只能搜英文不能搜索中文(但是直接 M-x counsel-ag
可以搜索中文),我现在其实只保留了 rg,ag 已经删掉了。
另外我这里 counsel-ag
的表现很奇怪,其实它是可以搜索中文的,当我输入 锻炼
和 锻炼身体
的时候都可以搜出结果,但是输入 锻炼身
三个字的时候就不行。
@guanghui.qu
这个跟 counsel-ag 更新 result 的机制有关,helm-ag的interface还是更成熟一点。
我现在用的 helm-ag + rg
好吧,谢谢山人了,我打算把 ivy layer 下的 SPC /
改成 helm layer 里面那种定制过的 helm-ag
来用