VI編輯器有兩類搜索:字符串和字符。對于一個字符串搜索,使用/和?命令。當你開始使用這個命令的時候,在最底部一行會顯示你敲入的命令,在命令后面可以輸入你想要搜索的特殊字符串。這兩個命令僅在搜索發生的方向上有區別。在文件中,/命令向前(向下)搜索,?命令向后(向上)搜索。n和N命令分別在相同或相反的方向上重復之前的搜索命令。一些字符對于VI來說,有特殊的意義,因此在它們前面必須要放置一條斜線(\)來被當作搜索表達式的一部分。
### 特殊字符:
* `^`:行的開始(一個搜索表達式的開始)。
* `.`:匹配一個單字符。
* `*`:匹配0個或多個之前的字符。
* `$`:行的結束(一個搜索表達式的結束)。
* `[`:開始一系列匹配,或者是非匹配的表達式。例如:`/f[iae]t`匹配三者之一:fit fat fet。在這種形式下,它不會匹配這些:`/a[^bcd]`不會匹配任何字符串,除了帶一個a和另外一個字母:ab ac ad。
* `<`:將之放在以反斜線結束的表達式中來尋找一個字的結束或開始。例如,`/\<the\>`只會發現the,而不是這些字:there和other。
* `>`:參考對于“<”的描述。
字符搜索在一行之內搜索來尋找在命令之后輸入的一個字符。f和F命令只在當前行上搜索一個字符。f向前搜索,而F向后搜索,同時,光標會移動到所發現字符的位置。
t和T命令只在當前行上搜索一個字符,對于t來說,光標移動到字符之前的位置,而T向后搜索行到字符之后的位置。
這兩套命令使用;和,命令來重復,其中;在相同方向上重復上一條字符搜索命令,而,在相反方向上重復上一條字符搜索命令。