求问各位大佬,怎么用rg.el 这个库来搜索中文呢?或者你们用rg搜索中文怎么搜的,encoding这些参数怎么传入进去的。总不至于是直接命令行搜的吧
color-rg.el 就可以做到
1 个赞
系统?如果是Windows会很麻烦
哇,懒猫,感谢大佬
windows。。。
忍了吧,rg用了compile,compile调用了cmd,改这个的in/out的编码容易出莫名其妙的问题
linux表示毫无压力,直接输入就可以了
Windows10下用不了,改rg.el的rg-build-command
函数,把这个函数倒数第二行pattern改成 (encode-coding-string pattern locale-coding-system)
拼接rg命令的时候把中文转成gbk编码,拼出的这个命令cmd.exe才能认识它。
这样就可以搜索中文内容了,但是文件夹路径有中文没处理,一般不用中文路径,先不管了。
1 个赞
color-rg.el
2 个赞
;; win32平台解决rg.el无法正常搜索中文,在调用rg.exe前使用本地编码修改pattern
(advice-add 'rg-run :around
(lambda (orig-fun &rest args)
(let ((pattern (car args)))
(apply orig-fun
(encode-coding-string pattern locale-coding-system)
(cdr args)))))
windows 平台,如果要搜索的目标文件的 buffer 编码是 utf-8,而 rg.el 的搜索结果的 buffer 是 chinese-gbk, 那可能是 emacs 本身的编码问题,可以尝试在配置文件中加入如下代码:
(when (eq system-type 'windows-nt)
(prefer-coding-system 'utf-8)
(setq default-process-coding-system '(undecided-dos . windows-1250)))
一直都是用rg.el搜索中文。设置process-coding-system-alist
就可以了
(set 'process-coding-system-alist
'(
("[pP][lL][iI][nN][kK]" utf-8-dos . gbk-dos)
("[cC][mM][dD][pP][rR][oO][xX][yY]" utf-8-dos . gbk-dos)
))
linux下中文英文没什么区别。