替换::
"s"代表替换,part1代表查找的内容,part2代表替换的内容,"%"代表所有行,"g"代表替换整行里所有的内容(如果不加"/g" 则只替换每行第一个匹配part1的地方)
- %表示全部的行;
- .表示当前行;
- $表示最后一行;
- 可以用具体的数字表示具体的行,如10,20等
:s/part1/part2 #用part2替换当前行中第1个part1
:s/part1/part2/g #用part2替换当前行中所有的part1
:%s/part1/part2 #用part2替换所有行中每行第1个part1
:%s/part1/part2/g #用part2替换所有行中所有的part1
:2,50s/part1/part2 #用part2替换第2行到第50行中每行第1个part1
:2,50s/part1/part2/g #用part2替换第2行到第50行中所有的part1
:.,$s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串
:.,+3s/part1/part2 #用part2替换当前行以及当前行后面的三行中每行第1个part1
:.,+3s/part1/part2/g #用part2替换当前行以及当前行后面的三行中所有的part1
BTW:在替换时要注意,某些字符是需要转译的,如空格、括号等。
查找::
查找命令:
要自当前光标位置向上搜索,请使用以下命令:
/pattern Enter
其中,pattern 表示要搜索的特定字符序列。
要自当前光标位置向下搜索,请使用以下命令:
?pattern Enter
按下 Enter 键后,vi 将搜索指定的 pattern,并将光标定位在 pattern 的第一个字符处。
如果 vi 找到了 place,它将把光标定位在 p 处。要搜索 place 的其他匹配,请按 n 或 N:
n,继续朝同一方向搜索 place。
N,反方向进行搜索。
4.5.1 搜索特殊匹配
在上面的示例中,vi 查找到包含 place 的任何序列,其中包括 displace、placement 和 replaced。
要查找单个的 place,请键入该单词,并在其前后各加一个空格:
/ place Enter
要查找仅出现在行首的 place,请在该单词前加一个插字符号 (^):
/^place Enter
要查找仅出现在行尾的 place,请在该单词后加一个货币符号 ($):
/place$ Enter
要逐字搜索这种带有插字符号 (^) 或货币符号 ($) 的字符,请在字符前加一个反斜线 (\)。反斜线命令 vi 搜索特殊字符。
使用 $
特殊字符是指在 vi 中具有特殊功能的字符(例如 ^、$、*、/ 和 .)。例如,$ 通常表示“转至行尾”,但是,如果 $ 前紧跟一个 \,则 $ 只是一个普通的字符。
例如,/(No \$ money) 向上搜索字符序列 (No $ money)。紧跟在 $ 之前的转义字符 (\) 命令 vi 逐字搜索货币符号。