Vim 查找与替换

Vim 查找与替换

Vim 查找与替换

Vim 剪切复制粘贴

Vim 排版与检查

文本处理的过程中,经常需要进行快速查找和文本替换,在vim中通过命令可以快速的实现文本的查找及替换,对于文本处理效率非常有用。

以下文Vim中查找、替换的命令介绍,请查看。

查找

/something: 在后面的文本中查找something。

?something: 在前面的文本中查找something。

/pattern/+number: 将光标停在包含pattern的行后面第number行上。

/pattern/-number: 将光标停在包含pattern的行前面第number行上。

n: 向后查找下一个。

N: 向前查找下一个。

可以用grep或vimgrep查找一个模式都在哪些地方出现过,

其中:grep是调用外部的grep程序,而:vimgrep是vim自己的查找算法。

用法为: :vim[grep]/pattern/[g] [j] files

g的含义是如果一个模式在一行中多次出现,则这一行也在结果中多次出现。

j的含义是grep结束后,结果停在第j项,默认是停在第一项。

vimgrep前面可以加数字限定搜索结果的上限,如

:1vim/pattern/ % 只查找那个模式在本文件中的第一个出现。

其实vimgrep在读纯文本电子书时特别有用,可以生成导航的目录。

比如电子书中每一节的标题形式为:n. xxxx。你就可以这样:

:vim/^d{1,}./ %

然后用:cw或:copen查看结果,可以用C-w H把quickfix窗口移到左侧,

就更像个目录了。

替换

:s/old/new - 用new替换当前行第一个old。

:s/old/new/g - 用new替换当前行所有的old。

:n1,n2s/old/new/g - 用new替换文件n1行到n2行所有的old。

:%s/old/new/g - 用new替换文件中所有的old。

:%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首。

:%s//xxx/g−在每一行的行尾插入xxx,/xxx/g−在每一行的行尾插入xxx,表示行尾。

所有替换命令末尾加上c,每个替换都将需要用户确认。 如:%s/old/new/gc,加上i则忽略大小写(ignore)。

还有一种比替换更灵活的方式,它是匹配到某个模式后执行某种命令,

语法为 :[range]g/pattern/command

例如 :%g/^ xyz/normal dd。

表示对于以一个空格和xyz开头的行执行normal模式下的dd命令。

关于range的规定为:

如果不指定range,则表示当前行。

m,n: 从m行到n行。

0: 最开始一行(可能是这样)。

$: 最后一行

.: 当前行

%: 所有行

正则表达式

高级的查找替换就要用到正则表达式。

\d: 表示十进制数(我猜的)

\s: 表示空格

\S: 非空字符

\a: 英文字母

|: 表示 或

.: 表示.

{m,n}: 表示m到n个字符。

{m,}: 表示m到无限多个字符。

**: 当前目录下的所有子目录。

通过命令:help pattern可以得到更多帮助信息。

相关推荐

365平台提现审核未通过 机械键盘为什么这么重?不是缺点而是优点6个理由

机械键盘为什么这么重?不是缺点而是优点6个理由

📅 07-07 👁️ 9029
英国365bet官方 如何鉴别岫玉、和田玉 看行家的经验之谈

如何鉴别岫玉、和田玉 看行家的经验之谈

📅 07-24 👁️ 4623
英国365bet官方 产品文档

产品文档

📅 10-28 👁️ 8307
英国365bet官方 《口袋妖怪复刻》雷电球图鉴介绍

《口袋妖怪复刻》雷电球图鉴介绍

📅 08-04 👁️ 3480