字符串替换
1.先按Esc进入命令模式,然后再打出‘:’(英文输入模式下)
2.输入格式: 首行数,末行数s/要替换的字符串/替换的字符串/g ; 常用操作为 :start_line, end_line s/xxx/xxx/
(不加g只替换每行的第一个要替换的字符串,后面的不会替换, s代表字符串的意思)
:{作用范围}s/{目标}/{替换}/{替换标志} %s(substitute)命令用来查找和替换字符串 :12,22s/abc/123/g %将12行到22行的字符串’abc‘替换成’123‘,加g一行可以替换多次 :%s/abc/123/ %将文中所有的abc都替换为123,不加g只替换每行的第一个要替换的字符串 :%s/^/\/\//g %行首加注释符号‘//’ :%s/xxx/xxx/ %首行为1,末行为$的替换,默认一行只替换一次
%s/xxx/xxx/g %全部替换
r 替换光标所在的字符 cl 修改当前字符 cc:修改当前行 c$ 修改到行尾的内容 =ddp:上下两行交换(其实是先dd,然后执行p)
%s/foo/bar/g 会在全局范围(%)查找 foo 并替换为 bar,所有出现都会被替换(g) :%s/foo/bar/gc 将每个 'foo' 更改为 'bar',但首先要求确认 :s/foo/bar/g 查找每次出现的“foo”(仅在当前行中),并将其替换为“bar” :%s\</foo\>/bar/gc 将每个 'foo' 更改为 'bar',但首先要求确认 :%s/foo/bar/gci 将每个“foo”(由于标志不区分大小写i)更改为“bar”;要求确认 :%s/foo\c/bar/gc 是相同的,因为\c使搜索不区分大小写,在使用:set noignorecase使搜索区分大小写(默认)后可能需要这样做 :%s/foo/bar/gcI 将每个'foo'(由于标志区分大小写I)更改为'bar';要求确认 :%s/foo\C/bar/gc 是相同的,因为\C使搜索区分大小写,:set ignorecase在使用使搜索不区分大小写之后可能需要这样做
:5,12s/foo/bar/g 将第 5 行到第 12 行(含)的所有行的每个 'foo' 更改为 'bar'。
:'a,'bs/foo/bar/g 对于从标记 a 到标记 b 的所有行,将每个 'foo' 更改为 'bar'(请参见下面的注释)。
:'<,'>s/foo/bar/g 使用+visual 编译时,将可视visual选择中所有行的每个 'foo' 更改为 'bar'。当您选择一个区域并输入 :.时,Vim 会自动为任何 ex 命令附加可视选择范围('<,'>) :.,$s/foo/bar/g 对于从当前行 (.) 到最后一行 ($) 的所有行,将每个 'foo' 更改为 'bar'。 :.,+2s/foo/bar/g 将当前行 (.) 和下两行 (+2) 的每个 'foo' 更改为 'bar'。 :g/^baz/s/foo/bar/g 将以“baz”开头的行中的每个“foo”更改为“bar”。
注意:从 Vim 7.3 开始,默认情况下,应用于由标记或可视选择(使用特殊类型的标记 '< 和 '>)定义的范围的替换不受标记的列位置限制。相反,Vim 将替换应用于每个标记出现的整行,除非\%V
原子用于以下模式::'<,'>s/\%Vfoo/bar/g
.
/word:向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用) ?word:向光标之上寻找一个字符串名称为 word 的字符串。 n:这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。
如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! N:这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 n<space>:那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。 0 或功能键[Home]:这是数字『 0 』:移动到这一行的最前面字符处 (常用) $ 或功能键[End]:移动到这一行的最后面字符处(常用) H:光标移动到这个屏幕的最上方那一行的第一个字符 M:光标移动到这个屏幕的中央那一行的第一个字符 L:光标移动到这个屏幕的最下方那一行的第一个字符 G:移动到这个档案的最后一行(常用) nG:n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) gg:移动到这个档案的第一行,相当于 1G 啊! (常用) n<Enter>:n 为数字。光标向下移动 n 行(常用)
跳到指定行:命令行输入“ : n ” 然后回车
删除特定行
删除空行 :g/^$/d 删除空行以及只有空格的行 :g/^\s*$/d 删除以 # 开头或 空格# 或 tab#开头的行 :g/^\s*#/d 对于 php.ini 配置文件,注释为 ; 开头 :g/^\s*;/d 使用正则表达式删除行 如果当前行包含 bbs ,则删除当前行 :/bbs/d 删除从第二行到包含 bbs 的区间行 :2,/bbs/d 删除从包含 bbs 的行到最后一行区间的行 :/bbs/,$d 删除所有包含 bbs 的行 :g/bbs/d 删除匹配 bbs 且前面只有一个字符的行 :g/.bbs/d 删除匹配 bbs 且以它开头的行 :g/^bbs/d 删除匹配 bbs 且以它结尾的行 :g/bbs$/d .ini 的注释是以 ; 开始的,如果注释不在行开头,那么删除 ; 及以后的字符 :%s/\;.\+//g 删除 # 之后所有字符 %s/\#.*//g
标签:bar,删除,vim,字符串,foo,bbs,替换 From: https://www.cnblogs.com/lanlancky/p/17358540.html