vim使用指北 ---- Global Replacement
一般替换
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的更多相关文章
- vi/vim使用指北 ---- Learning the vi and Vim Editors 读书 笔记
vi/vim作为liux系统下最强大,最流行的文本编辑器之一.边看<Learning the vi and vim Editor>边学习vim,顺便做写简单的笔记,供以后查询. 没看这本书 ...
- vi/vim使用指北 ---- Beyond the Basic
更多的组合命令 [number]-[command]-[test object] number: 数字 comand: c,d,y (修改,删除,复制) test object: 移动光标的命 ...
- vi/vim使用指北 ---- Moving Around in a Hurry
上一篇文章中,简单列出了一些基本的Vim操作,也列出了很多的光标移动命令,本章主要是有哪些命令可以更快的移动光标. vim的编辑操作,用得最多就是移动光标,对于很少行的文件来说,基本的命令就够用了,但 ...
- vi/vim使用指北 ---- Sample Editing
本篇介绍vim的基础操作,各种编辑模式的切换,光标的移动,删除,撤销/重做,保存,查找等基础命令: 基础操作 编辑文件 vim [options] [file ...] 模式 打开文件后进入vim的 ...
- vim使用指北 ---- Multiple Windows in Vim
多窗口打开多个文件 vim -o file1 file2 ... ---- 默认上下分割窗口 vim -0n file1 file2 ... ---- vim默认会上下等分n个窗口 分割窗口 :[v] ...
- vim使用指北 ---- Advanced Editing
本节介绍vi和ex的一些高级功能. 配置vi 配置文件.exrc可以保存在你的主目录下,在vi启动的时候执行这个配置文件.但在当前工作目录下可以放置一个配置文件,对当前目录做一个自定义配置. :set ...
- vi/vim使用指北 ---- Introducting the ex Editor
本章介绍ex编辑器,为什么要介绍这样一个新的编辑器呢:其实ex编辑器不能算是一个新的编辑器,vi只是它的visual model,它已经是一个更普遍,基于行的编辑器.ex提供更大机动和范围的编辑命令. ...
- git宝典—应付日常工作使用足够的指北手册
最近公司gitlab又迁移,一堆git的命令骚操作,然鹅git命令,感觉还是得复习下——其实,git现在界面操作工具蛮多,比如intellij 自带的git操作插件就不错,gitlab github ...
- Python 简单入门指北(二)
Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...
随机推荐
- jquery Mobile应用第2课《构建跨平台APP:jQuery Mobile移动应用实战》连载二(简单的QWER键盘)
在jQuery Mobile的布局中,控件大多都是单独占据页面中的一行,按钮自然也不例外,但是仍然有一些方法能够让多个按钮组成一行,比如说在范例6-5中就利用按钮分组的方法使4个按钮并列在一行中,如图 ...
- Python学习教程(learning Python)--3.3.3 Python逻辑关系表达式
在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...
- Android SharedPreferences使用以及原理详解
SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据.SharedPreferences只能保存简单类型的数据,例如,String.int等.一般会将复杂类型的数据转换成Ba ...
- hdu 1890 Robotic Sort
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1890 如下: #include<cstdio> #include<cstdlib&g ...
- 使用angular封装echarts
Echarts是一个开源的图表组件,图表比较丰富,工作中需要用到它来搭建一个数据展示系统.但是系统原有的框架是基于angular的,而echarts是基于原生js的,如果直接使用的话就丢失了angul ...
- android不要标题栏
去除标题栏title其实非常简单,他有两种方法,一种是在代码中添加,另一种是在AndroidManifest.xml中添加: 1.在代码中实现: 在此方法setContentView(R.layout ...
- 读:HIS 与医保系统的接入方案及实现
HIS 与医保系统的接入方案及实现刘剑锋 李刚荣第三军医大学西南医院信息科(重庆 400038) 医院HIS和医保系统的接口设计方案涉及两个部分,分别由医院和医保中心分别完成相,应的程序设计,这两部分 ...
- Understanding Service Types
Last update: June 2014. I have partially rewritten this article to provide more technical details an ...
- iTween
http://u3d.as/content/pixelplacement/i-tween/1s9 download http://itween.pixelplacement.com/documenta ...
- Liferay IDE 3.1 M1发布啦
很嗨森,以后就再也不用SDK和下载.ivy啦 新增功能主要有: 1.Liferay Workspace(用来存放Liferay Module项目) 2. Liferay Gradle Module P ...