最近想尝试从ivy向vertico、consult的迁移,还是有点不太习惯;遇到几个问题请教一下大家: 1、consult-grep无法查找中文,不知道是不是应该增加什么设置才好?counsel-grep查找中文没有问题; 2、consult-locate在windows中,可以向counsel-locate一样使用everything吗?counsel-locate配合everything真是方便; 3、consult可以定制按照一定顺序排列可选项吗?
刚开始用还不熟悉,多谢大家指点。
最近想尝试从ivy向vertico、consult的迁移,还是有点不太习惯;遇到几个问题请教一下大家: 1、consult-grep无法查找中文,不知道是不是应该增加什么设置才好?counsel-grep查找中文没有问题; 2、consult-locate在windows中,可以向counsel-locate一样使用everything吗?counsel-locate配合everything真是方便; 3、consult可以定制按照一定顺序排列可选项吗?
刚开始用还不熟悉,多谢大家指点。
1 2 都是你去对比两个源码就行了,比如说 counsel-grep-command
是 grep -E -n -e %s filename
可以搜中文,你去对比 consult-grep-args
有啥不一样的地方,然后看咋改。
counsel-locate-cmd-es
也就一个函数,然后如果没有就看看咋改。(可能是改 consult-locate-args
我没用过,不确定)
(defun counsel-locate-cmd-es (input)
"Return a `es' shell command based on INPUT."
(defvar w32-ansi-code-page)
(counsel-require-program "es.exe")
(let ((raw-string (format "es.exe -i -p -r %s"
(counsel--elisp-to-pcre
(ivy--regex input t)))))
;; W32 doesn't use Unicode by default, so we encode search command
;; to local codepage to support searching file names containing
;; non-ASCII characters.
(if (and (eq system-type 'windows-nt)
(boundp 'w32-ansi-code-page))
(encode-coding-string raw-string
(intern (format "cp%d" w32-ansi-code-page)))
raw-string)))
用 @zilongshanren 的配置,consult-locate 就可以用 everything 来搜索, 并且能显示中文。
不过不支持空格来分词,只能搜索一个单词。请教下,怎么设置才能像在 GUI 的 everything 中那样分词进行搜索。
这样也很棒。 Windows 下虽然 everything 很快,但在 Emacs 中刷新还是明显能感觉到延迟的。 单个单词出来结果后,通过 orderless 进一步过滤时,速度速度贼快 ,瞬时更新。
似乎不能搜索中文吧?
可以的,不过我现在也不用 everything 了。如果不行,可能是编码问题。
(use-package pinyinlib
:after orderless
:config
(defun completion--regex-pinyin (str)
(orderless-regexp (pinyinlib-build-regexp-string str)))
(add-to-list 'orderless-matching-styles 'completion--regex-pinyin))
刚踩完的坑,得设置windows系统编码方式为UTF-8,然后这几行里面最好再加一行对grep的