一般替换

s/old/new   --- 替换当前行的第一个匹配项

s/old/new/g ---- 替换当前行所有的匹配项

number1,number2-s/old/new/g  ---- 替换从number1行到number2行中所有的匹配项

1,$s/old/new/g = %s/old/new/g ----- 替换整个文件的所有匹配项

确认再替换

在替换命令后面加个c(confirm),例如1,30s/his/the/gc。每次找到匹配项时会提示是否需要替换,输入y,Enter确认替换,不需要替换直接Enter跳过

context-sensitive 替换 g/pattern/s/old/new/g

第一个g表示需要从所有行查找pattern,后面的g表示当前行所有的匹配项都替换。

如果pattern和old是一样的,old可以省略,这样的命令等同于%s/old/new/g

正则表达式匹配规则

. ---- 匹配除换行符以外的所有字符

* ---- 匹配0个或多个字符

^ ---- 匹配一行的开始

$ ---- 匹配一行的结束

\ ---- 反意字符,表示后面的字符为一个常规字符。

\( \) --- 占位符,一行最多可以有9个。例如\(That\) or \(this\)    \(That\)为1号,后面需要用到That就可以使用\1来代替,\(this\)为2号,是用\2来调用。例如把That or this 替换为this or That则可以用命令%s/\(That\) or \(this\)/\2 or \1

\< /> ---- 匹配以字符开头或结尾的单词,例如\<ac 匹配以ac开头的单词,ac/>则匹配以ac结尾的单词

~ ---- 在查找中匹配上一个使用的正则表达式。例如开始查找/The,现在想查找/Then,则可以使用/~n来代替/Then

POSIX character classes

[:alnum:] ---- 匹配字母数字字符

[:alpha:] ---- 匹配字母字符

[:blank:] ---- 匹配空格和Tab字符

[:cntrl:] ---- 匹配Control字符

[:digit:] ---- 匹配数字字符

[:graph:] ---- 匹配可打印的和可见的非空白字符

[:lower:] ---- 匹配小写字符

[:print:] ---- 匹配可打印的字符包括空白

[:punct:] ---- 匹配标点符号字符

[:space:] ---- 匹配空白字符

[:upper:] ----- 匹配大写字符

[:xdigit:] ---- 匹配16进制的数字字符

在替换字符中使用元字符

\n ---- n表示0,9,前面说过\( \)保存的表达式

\ ---- 表示后面的特殊字符为普通字符

& ---- 表示查到的字符串

~ ---- 表示上一次替换的字符串

\u \l ---- 表示改变其后的字符为大写的或小写的,例如s/\(That\) or \(this\)/\u\2 or \l\1  把That or this 替换成This or that

\U \L 和\e \E ---- 表示改变其后的字符为大写的或小写的直到\e或\E的出现

vim使用指北 ---- Global Replacement的更多相关文章

  1. vi/vim使用指北 ---- Learning the vi and Vim Editors 读书 笔记

    vi/vim作为liux系统下最强大,最流行的文本编辑器之一.边看<Learning the vi and vim Editor>边学习vim,顺便做写简单的笔记,供以后查询. 没看这本书 ...

  2. vi/vim使用指北 ---- Beyond the Basic

    更多的组合命令 [number]-[command]-[test object] number:   数字 comand:  c,d,y  (修改,删除,复制) test object: 移动光标的命 ...

  3. vi/vim使用指北 ---- Moving Around in a Hurry

    上一篇文章中,简单列出了一些基本的Vim操作,也列出了很多的光标移动命令,本章主要是有哪些命令可以更快的移动光标. vim的编辑操作,用得最多就是移动光标,对于很少行的文件来说,基本的命令就够用了,但 ...

  4. vi/vim使用指北 ---- Sample Editing

    本篇介绍vim的基础操作,各种编辑模式的切换,光标的移动,删除,撤销/重做,保存,查找等基础命令: 基础操作 编辑文件 vim  [options] [file ...] 模式 打开文件后进入vim的 ...

  5. vim使用指北 ---- Multiple Windows in Vim

    多窗口打开多个文件 vim -o file1 file2 ... ---- 默认上下分割窗口 vim -0n file1 file2 ... ---- vim默认会上下等分n个窗口 分割窗口 :[v] ...

  6. vim使用指北 ---- Advanced Editing

    本节介绍vi和ex的一些高级功能. 配置vi 配置文件.exrc可以保存在你的主目录下,在vi启动的时候执行这个配置文件.但在当前工作目录下可以放置一个配置文件,对当前目录做一个自定义配置. :set ...

  7. vi/vim使用指北 ---- Introducting the ex Editor

    本章介绍ex编辑器,为什么要介绍这样一个新的编辑器呢:其实ex编辑器不能算是一个新的编辑器,vi只是它的visual model,它已经是一个更普遍,基于行的编辑器.ex提供更大机动和范围的编辑命令. ...

  8. git宝典—应付日常工作使用足够的指北手册

    最近公司gitlab又迁移,一堆git的命令骚操作,然鹅git命令,感觉还是得复习下——其实,git现在界面操作工具蛮多,比如intellij 自带的git操作插件就不错,gitlab github ...

  9. Python 简单入门指北(二)

    Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...

随机推荐

  1. 实战Django:官方实例Part3

    前面两个部分我们介绍了投票应用的框架和后台管理部分.接下来舍得要介绍这个应用面向用户的界面. 这里我们要引入一个新的概念,"视图".在Django中,视图是一根连接模型和模板的纽带 ...

  2. 从0 开始 WPF MVVM 企业级框架实现与说明 ---- 第二讲 WPF中 绑定

    说到WPF, 当然得从绑定说起,这也是WPF做的很成功的一个地方,这也是现在大家伙都在抛弃使用winform的其中一个主要原因,Binding这个东西从早说到完其实都说不完的,我先就做一些基本的介绍, ...

  3. Spring源码下载

    Spring已经将源码从SVN迁移到了Github,而且也改为基于Gradle的构建来构建项目,它取代了之前的ANT+Ivy系统,所以要构建Spring源码要先安装Github和Gradle. 首先假 ...

  4. Go append方法

    append用来将元素添加到切片末尾并返回结果.看代码: package main import "fmt" func main() { x := [],,} y := [],,} ...

  5. vs2013中使用nuget下载cefsharp winform包

    cefsharp是chrome的一个开源项目,基于webkit的一个浏览器.下载cefsharp需要安装nuget.之后管理nuget程序包,联机搜索cef即可找到winform包.

  6. DataGridView控件

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

  7. Windows Phone 8内存控制研究 之 LonglistSelector使用陷阱

    最近工作中常常被问到如何降低WP内存使用,便再一次开始研究内存问题,首先发现了LonglistSelector使用的一个常见问题: 概述 若将Longlistselector 控件的ItemsSour ...

  8. Keystore概念,Keytool工具使用

    几个概念 keystore是一个密码保护的文件,用来存储密钥和证书(也就是说,keystore中存储的有两类型entries):这个文件(默认的)位于你的home目录,也就是你登录到操作系统的用户名的 ...

  9. Java令牌生成器

    package Token; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; im ...

  10. 【Subsets】cpp

    题目: Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset ...