动机是 https://emacs-china.org/t/spacemacs/24268/7的第二个需求.
还是在一个Project里面,我先搜索某些文件,比如CMakeLists.txt ,那么会搜索出来这个项目里面所有的CMakeLists.txt 文件,这个用 Spc p f
可以做到。那么现在我能够 以所有的搜索结果为范围,在这个范围里面继续搜索某个内容,比如 add_library
我想如果能直接能得到 consult 的结果为一个 list 那应该就很容易实现, 我想还是要借助于 embark 的 collect buffer 或者 export buffer, 怎么能把这些的 buffer 的结果导出为一个 list?
比如这是一个 export buffer, 是一些文件名, 我怎么得到 ("emacs.org" "spacemacs.org")
这样一个 list 呢?
$ emacsq.sh -P cl-lib,ivy --eval "\
(progn
(global-set-key (kbd \"C-c r\") 'counsel-rg)
(defun counsel-rg-search-in-result (_)
(ivy-read \"Search in result: \"
(cl-copy-list ivy--all-candidates)
:action #'counsel-grep-action))
(ivy-add-actions 'counsel-rg '((\"s\" counsel-rg-search-in-result \"Search In result\"))))" -nw
Steps:
- 运行上面的最小配置( emacsq.sh)
- 按
C-c r
开始搜索
- 输入关键字
- 按
M-o
切换到 action 菜单界面
- 按
s
执行 Search in result
vhqr
3
你实现的功能是不是 ivy
自带的 ivy-restrict-to-matches
?