语法为 :[addr]s/源字符串/目的字符串/[option]
全局替换命令为::%s/源字符串/目的字符串/g
[addr] 表示检索范围,省略时表示当前行。
如:“1,20” :表示从第1行到20行;
“%” :表示整个文件,同“1,$”;
“. ,$” :从当前行到文件尾;
s : 表示替换操作
[option] : 表示操作类型
如:g 表示全局替换;
c 表示进行确认
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);
省略option时仅对每行第一个匹配串进行替换;
如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义
下面是一些例子:
#将That or this 换成 This or that
:%s/\(That\) or \(this\)/\u\2 or \l\1/
—-
#将句尾的child换成children
:%s/child\([ ,.;!:?]\)/children\1/g
—-
#将mgi/r/abox换成mgi/r/asquare
:g/mg\([ira]\)box/s//mg//my\1square/g <=> :g/mg[ira]box/s/box/square/g
—-
#将多个空格换成一个空格
:%s/ */ /g
—-
#使用空格替换句号或者冒号后面的一个或者多个空格
:%s/\([:.]\) */\1 /g
—-
#删除所有空行
:g/^$/d
—-
#删除所有的空白行和空行
:g/^[ ][ ]*$/d
—-
#在每行的开始插入两个空白
:%s/^/> /
—-
#在接下来的6行末尾加入.
:.,5/$/./
—-
#颠倒文件的行序
:g/.*/m0O <=> :g/^/m0O
—-
#寻找不是数字的开始行,并将其移到文件尾部
:g!/^[0-9]/m$ <=> g/^[^0-9]/m$
—-
#将文件的第12到17行内容复制10词放到当前文件的尾部
:1,10g/^/12,17t$
~~~~重复次数的作用
—-
#将chapter开始行下面的第二行的内容写道begin文件中
:g/^chapter/.+2w>>begin
—-
:/^part2/,/^part3/g/^chapter/.+2w>>begin
—-
:/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$
分享到:
相关推荐
这个命令是VI编辑器中全局替换命令的一个实例,用于在整个文档中查找并替换特定模式。这里,“`%s`”表示对整个文档(%)进行搜索替换操作;“`#`”作为分隔符,将命令分为三部分:“`old_pattern`”(被替换的旧...
:s/旧字符串/新字符串/g全局替换。 3. **插入模式** - **进入插入模式**:在命令模式下按'i'(在当前光标前插入)或'a'(在当前光标后插入)。 - **退出插入模式**:按'Esc'键返回到命令模式。 4. **保存与退出*...
17. **替换命令** - 替换当前字符: `s` - 替换当前行: `S` - 替换从当前字符开始的n个字符: `ns` 18. **光标定位** - 往右移动到x字符: `fx` - 往左移动到x字符: `Fx` - 往右移动到x字符前: `tx` - 往左...
- `:s/pattern/replacement/flags`:替换当前行中所有匹配`pattern`的字符串为`replacement`,其中`flags`可选参数如`g`表示全局替换。 - `:n1,n2 s/pattern/replacement/flags`:在第n1到第n2行之间替换所有匹配`...
### Linux VI/VIM 替换命令详解 #### 一、全局替换 在 Linux 的 VI/VIM 编辑器中,可以使用 `:s` 命令进行字符串替换。全局替换指的是在整个文档范围内进行字符串替换。 1. **使用 `v + G + $`** 首先进入可视...
4. **查找与替换**:`:/{搜索内容}`进行查找,`:s/{搜索内容}/{替换内容}`替换当前行,`:g/{搜索内容}/{替换内容}/`全局替换。 5. **保存与退出**:`:w`保存但不退出,`:wq`保存并退出,`:q!`不保存强制退出。 **vi...
替换命令的一般格式为`:[address]s/old/new[/cg]`。 - `address`:可以是一个搜索字符串、一个行编号或是一对由逗号分隔的两个行号。例如: - `:s/old/new`:在当前行查找并替换第一次出现的`old`为`new`。 - `:....
- 替换命令格式为`:n1,n2s/word1/word2/g`,表示在第n1行到n2行之间查找word1并替换为word2,其中`g`代表全局替换。 - 如果需要在每次替换前得到用户确认,可以在替换命令末尾加上`c`,如`:1,$s/word1/word2/gc`。 ...
- **作用**: 替换匹配的文本,其中`pattern`为查找模式,`replacement`为替换文本,`flags`为替换标志(如`g`表示全局替换)。 #### 8. 搜索与替换 - **命令**: `/%s/old_word/new_word/g` - **作用**: 全局替换...
- `:g/pattern/s//replacement/`:全局替换,将文件中所有匹配`pattern`的行替换为`replacement`。 4. **可视化模式**: - `V`:按行选择可视模式。 - `Ctrl + v`:按块选择可视模式。 - `Shift + V`:从当前...
- `:1,$s/pattern/replacement/g`:从第一行到最后一行全局替换pattern为replacement。 - **文件操作**: - `:r filename`:读取另一个文件到当前文件。 - `:w filename`:写入当前文件到另一个文件。 - `:sp ...
- **n1,n2s/p1/p2/g**:在 `n1` 和 `n2` 行之间全局替换所有出现的 `p1` 为 `p2`。 - **g/p1/s//p2/g**:在所有包含 `p1` 的行中替换 `p1` 为 `p2`。 3. **其他命令**: - **:w**:保存当前编辑的内容。 - **:w ...
进行替换操作时,可以使用`:s/旧字符串/新字符串/g`命令,其中`g`代表全局替换。 - **其他常用命令** Vi提供了丰富的命令用于文本编辑,比如: - `:set nu`:显示行号。 - `:set nonu`:取消显示行号。 - `...
- `:%s/from/to/g`:全局替换所有出现的 `from` 为 `to`。 - **撤销** - `u`:撤销上一步操作。 - `U`:撤销对整个文件的操作。 - `Ctrl + r`:重做上一步操作。 - **修改** - `cw`:改变光标所在单词。 - `c#...
vi的修改命令(如`c`系列)和替换命令(如`s`系列)允许用户精准地编辑文本内容。例如,`cw`用于修改到当前单词的结尾,`s/old_word/new_word/g`则用于全局替换特定字符串,这些都是文本编辑中必不可少的功能。 ...
:gs/旧字符串/新字符串/g,全局替换。 4. **保存与退出** - 保存:`:w`,保存修改但不退出。 - 退出:`:q`,如果未修改,直接退出;`:q!`,强制退出,不保存修改。 - 保存并退出:`:wq`。 5. **撤销与重做** -...
- **搜索与替换**:使用`/`进行搜索,使用`:s/old/new/g`进行全局替换。 - **多窗口操作**:使用`split`命令分割窗口,`ctrl+w`加方向键切换窗口。 - **宏命令**:录制一系列命令,然后重复执行,提高效率。 #### ...
而在底行模式中,你可以执行保存、退出、查找替换等全局操作。 在vi中,光标的移动是非常基础的操作。例如,使用`h`向左移动,`j`向下移动,`k`向上移动,`l`向右移动。而`w`会跳到下一个单词的开头,`b`则回到当前...
(向上查找)、:%s/old/new/g(全局替换old为new)、:noh(取消高亮显示)。 - 执行Shell命令::!command(执行Shell命令)、:shell(进入Shell环境)。 - 设置VI参数::set nu(显示行号)、:set nonu(隐藏行号...
- **底行模式**:通过在命令模式下输入':'进入,用于执行保存、退出、查找替换等全局操作。 2. 移动光标: - **h**:向左移动一字符。 - **j**:向下移动一行。 - **k**:向上移动一行。 - **l**:向右移动一...