有几件事我还不明白 VIM 方式。
其中之一是在像这样的项目中搜索(在 Atom 中使用 VIM):
我目前使用 CtrlP 作为文件名,但是内容呢?
如何使用字符串进行搜索,然后使用 VIM 和/或 VIM 插件查看所有出现的事件的列表?
使用
:grep
或 :vimgrep
搜索文件内容。结果将放入“位置列表”中,您可以通过键入 :cw
Enter 打开该列表。
默认情况下,
:grep
的语法与grep(1)
命令相同:
:grep 'my pattern.*' /path/to/dir
默认情况下,它将搜索当前目录(
:pwd
)。我将 set autochdir
添加到我的 .vimrc 中,这样我的 PWD 始终跟随我正在编辑的文件。
:grep
和 :vimgrep
之间的主要区别在于 :vimgrep
(简称 :vim
)使用 Vim 兼容的正则表达式,而 :grep
使用 &grepprg
使用的任何正则表达式。
您可以通过将
&grepprg
设置为不同的内容来使用自定义程序。我个人喜欢 ack,它使用 Perl 兼容的正则表达式 (PCRE)。其他类似 grep 的程序也可用,这取决于您。
" .vimrc
" To get ack, use:
" $ curl https://beyondgrep.com/ack-v3.7.0 > ~/bin/ack && chmod +x ~/bin/ack
if executable('ack')
" Use ack over grep (automatically ignores *~)
set grepprg=ack\ --nogroup\ --nocolor
endif
除了fzf之外,还有其他优秀的模糊查找插件。
Telescope live_grep
搜索您的项目。Leaderf rg
搜索您的项目。要打开文件,我会突出显示位置列表中的行 (Shift-v),然后按 Enter 键。
如果您使用 Neovim,更好的解决方案是使用 telescope.nvim 和 BurntSushi/ripgrep 建议的依赖项,您可以使用
live_grep
、 grep_string
以及 find_files