最近看到不少UP主在使用telescope.nvim这个强大无比的插件。与是我也用了一下,的确非常强大。但是有一点让我疑惑🤔为什么我这个无法通过文本搜索文件呢?
探索起初我认为可能是我的配置文件有问题,然后种排查,问题依然在。 我的配置如下:
if !exists('g:loaded_telescope') | finish | endif
" Using Lua functions
nnoremap ff lua require('telescope.builtin').find_files()
nnoremap fg lua require('telescope.builtin').live_grep()
nnoremap fb lua require('telescope.builtin').buffers()
nnoremap fh lua require('telescope.builtin').help_tags()
nnoremap sf lua require('telescope.builtin').file_browser()
" find in current buffer
nnoremap / lua require'telescope.builtin'.current_buffer_fuzzy_find{}
关于文本搜索的配置如下:
nnoremap fg lua require('telescope.builtin').live_grep()
这么简单的配置没道理出错啊!为什么我什么内容都搜索不到呢?
找到端倪项目主页的说明我看了几遍,https://github.com/nvim-telescope/telescope.nvim。也没有解决掉这个问题。起初我以为是平台兼容性问题,我把macOS与CentOS7都试了一下,都无法搜索文件。
因为我还有其他的插件可以完成文本搜索功能,详见:https://blog.csdn.net/lxyoucan/article/details/117077611。
这个问题也就暂时搁置了一段时间。
直到有一天,我在尝试搜索文件的时候,看到状态栏的错误信息一闪而过(非常快)。 [telescope] ^I…elescope.nvim/lua/telescope/finders/async_job.finder.lua:48: in function ‘finder’
这个错❌不是一直出现,而是一闪错过,不注意就发现不了。既然有报错了,就好办了。 看来肯定是我哪个地方没有做对导致的。然后我就根据上面报错信息到网上搜索了一圈,竟然搜索不到结果。
最终解决办法然后我又去项目主页,把文档在次仔细阅读。原来是我粗心大意了。 文档里写的非常清楚
live_grep
需要依赖ripgrep
。我真是太粗心了。竟然因为这个困扰了好几天!
安装了 https://github.com/BurntSushi/ripgrep 就可以正常的搜索了。
总结主要还是因为我粗心导致,没仔细看文档。 其次:
ripgrep
写是的建议依赖,而不是必须依赖,这也使我略过这一句话了。- 搜索文本
live_grep
时没有明显的报错提示。这无疑使debug的难度大增。