是的,聚焦单文件以后,ripgrep 的速度秒杀 swiper/moccur这种。
swiper属于增长型搜索吧
其实你用多了,发现增长性搜索只是看着很酷,更像探索性的操作。
但是平常编程一般都是自己的代码,搜索和重构之前想输入啥都清清楚楚,目标很明确,而且往往就是光标处的符号。
这时候color-rg这种又能搜文件和目录,同时还内置批量重构功能的插件更为实用。
rg --column --color=always -H --heading --smart-case -e “可以给单词着色。”
c:/Users/yzl/AppData/Roaming/.emacs.d/README.md warning: extra args ignored after ‘rg --column --color=always -H --heading --smart-case -e "可以给单词着色。’
color-rg finished with no matches found at Thu May 16 09:35:31
color-rg的中文搜索怎么不给力? 需要单独额外的配置?明明光标下就有该词组(windows系统)
中文是可以搜索的,检查一下你Emacs的编码设置,可能和你终端的编码设置不一样。
Windows 代码页 问题。
启用win10的全局utf-8选项,虽然这是一个实验性选项,但我使用了一段时间了,除了少部分旧软件内置菜单和显示编码非unicode所以无法正常显示外,使用体验非常好。
windows 下无法进行中文搜索问(其实 日文 韩文 乃至法语等其他拉丁脚本也一样)其实不是emacs编码设置问题,而是emacs对subprocess的命令编码无论你如何设置,在传输到cmdproxy shell 的时候都会转换到你的 locale code page
,通常对于中文用户就是gbk编码,因此 rg ag等默认接受utf-8参数的工具接到的是乱码,当然搜索不到。具体bug可以看这个mailing-list Passing unicode filenames to start-process on Windows?
启用后 添加如下片段到你的 启动配置中:
(when (and (eq system-type 'windows-nt)
(eq w32-ansi-code-page 65001))
(setq w32-system-coding-system 'utf-8)
(define-coding-system-alias 'cp65001 'utf-8))
小文件用swiper,大文件和目录用rg
color-rg 能不能对 rg工具 增加参数的搜索? 比如 我实际用rg搜索的时候,会使用 -T, --type-not参数来 忽略某种文件类型, color-rg 有 可以设置这种参数的功能吗? 或者说 emacs下怎么实现这种功能?
C-h f color-rg-build-command
你可以改一下这个函数
你把括号去掉 他就是python了
如果你想用 --type-not
只需要在 (list “–heading”) 后面加一行
(list “–type-not” “asm” “–type-not” “awk”)
然后 C-x C-s 保存
再然后 M-x eval-buffer
再然后 你就能去github提issue了
但是你这样不是灵活的啊,我想有可以灵活设置的功能。
那样啊
你可以 M-x info C-s elisp 回车 回车
只需要找 list 和 defcustom 相关的 就行了
你可以先搜索再过滤文件,看keymap
这里可以有def-custom
可以是个list 也可以是个function
你需要的功能是有现成的。直接在 color-rg buffer里面使用大写C。绑定到的函数是
color-rg-customized-search
。就可以手动输入命令啦。你想传什么给rg都可以。
我想知道如何进行全局替换?我搜索之后,r输入我的目标字符,回车,然后并没有进行替换,我应该怎么操作才能进行全局替换?
权限问题?你的文件权限是啥?
➜ ccJSON git:(master) ls -l
total 424
-rw-r--r-- 1 originals staff 2394 11 7 22:37 TAGS
-rwxrwxrwx 1 originals staff 136456 11 5 23:16 a.out
-rw-r--r-- 1 originals staff 348 11 7 22:37 all.json
-rw-r--r-- 1 originals staff 5997 11 7 22:37 ccjson.cpp
-rw-r--r-- 1 originals staff 3026 11 7 22:37 ccjson.h
-rw-r--r-- 1 originals staff 1001 11 7 22:37 debugprint.h
-rw-r--r-- 1 originals staff 22 11 7 22:37 error1.json
-rw-r--r-- 1 originals staff 21 11 7 22:37 error2.json
-rw-r--r-- 1 originals staff 3 11 7 22:37 error3.json
-rw-r--r-- 1 originals staff 46 11 7 22:37 error4.json
-rw-r--r-- 1 originals staff 48 11 7 22:37 error5.json
-rw-r--r-- 1 originals staff 1800 11 7 22:37 main.cpp
-rw-r--r-- 1 originals staff 49 11 7 22:37 makefile
-rw-r--r-- 1 originals staff 487 11 7 22:37 readme.md
-rw-r--r-- 1 originals staff 65 11 7 22:37 test.json
-rw-r--r-- 1 originals staff 112 11 7 22:37 test2.json
-rw-r--r-- 1 originals staff 59 11 7 22:37 test3.json
-rw-r--r-- 1 originals staff 60 11 7 22:37 test4.json
-rw-r--r-- 1 originals staff 54 11 7 22:37 test5.json
按r后直接输入你最终要替换的字符