vimgrep
1. vimgrep
:vim[grep][!] /{pattern}/[g][j] {file} ...
在文件 {file} ... 里搜索模式 {pattern},并用匹配结果设
置错误列表。忽略匹配 'wildignore' 的文件;最后搜索匹配
'suffixes' 的文件。
| 标志 | 说明 |
|---|---|
| g | 如果没有 'g' 标志位,每行只加一次。如果有 'g',每个匹配都被加入。 |
| 标志 | 说明 |
|---|---|
| 是 Vim 的搜索模式。除了用 / 之外,任何非 ID |
适用 'ignorecase'。要否决该设置,在模式里用 /\c 来忽
略大小写或 /\C 来匹配大小写。
不使用 'smartcase'.
如果 {pattern} 为空 (例如,指定 //),使用前次搜索模
式。last-pattern.
- 如果命令前面带数字,它定义要寻找的最大匹配数目。这样,
":1vimgrep pattern file" 只会找到第一个。这可以用于只
想检查是否有匹配而在找到后能快速退出的场合。
| 标志 | 说明 |
|---|---|
| j | 如果没有 'j' 标志位,Vim 跳到第一个匹配上。如果有 'j',只更新 quickfix 列表。 |
如果有 [!],放弃当前缓冲区的任何修改。
eg1:在c 代码中搜索所有的 文字.
:vimgrep /an error/ *.c
eg2:在所有头文件中搜索.
:vimgrep /\<FileName\>/ *.h include/*
eg:3 搜索某个函数 .
:vimgrep /myfunc/ **/*.c
eg4: 空白分割
vimgrep Error *.c
- lvimgrep
:lv[imgrep][!] /{pattern}/[g][j] {file} ...
:lv[imgrep][!] {pattern} {file} ...
和 ":vimgrep" 类似,但使用当前窗口的位置列表而不是 quickfix 列表。
- vimgrepadd
:lvimgrepa[dd][!] /{pattern}/[g][j] {file} ...
:lvimgrepa[dd][!] {pattern} {file} ...
和 ":vimgrepadd" 类似,但使用当前窗口的位置列表而不是quickfix 列表。
使用参数列表中的文件进行查找.
➾s :args *.txt
➾ :vim /going/g ##
《 (1 of 4): Don' t watch the clock; do what it does. Keep going.
- 构造复杂表达式
/[Dd]on' t
:vim //g *.txt
:vim //g ##