vim功能之替换和查找

vim有着强大的替换和查找功能,若能进行熟练的运用,可以让工作效率得到一个很大程度的提高.

替换

语法:[addr]s/源字符串/目的字符串/[option]

[addr]表示检索范围,如:

"1,n":表示从第1行到n行
"%":表示整个文件,同"1,$"
".,$":表示从当前行到文件尾

[addr]省略时表示当前行

s:表示替换操作,其为substitute的缩写

[option] : 表示操作类型,如:

g:globe,表示全局替换

c:confirm,表示进行确认

p:表示替代结果逐行显示(Ctrl + L恢复屏幕)

i:ignore,不区分大小写

[option]省略时仅对每行第一个匹配串进行替换

如果在源字符串和目的字符串中出现特殊字符,如‘/‘,‘<‘,‘>‘,‘,‘等需要前面加反斜杠\进行转义

常用命令示例:

#将当前行第一个a替换为b

:s/a/b/

#将当前行的所有a替换为b

:s/a/b/g

#将每行第一个a替换为b

:%s/a/b

#将整个文件的所有a替换为b

:%s/a/b/g

#将1至3行的第一个a替换为b

:1,3s/a/b/

#将1至3行的所有a替换为b

:1,3s/a/b/g

上面是一些常用的替换,但是我们日常碰到的问题不止这么简单,这就要涉及到一些较为高级的替换操作,会涉及到转义,正则表达式相关的知识,下面是一些例子:

#使用#作为分隔符,此时中间出现的/不会作为分隔符,如:将当前行的字符串"a/"替换为"b/"

:s#a/#b/#

#找到包含字母a的行并删除

:g/a/d

#删除所有空行
:g/^$/d

#多个空格替换为一个空格

:s/ \+/ /g

#在正则表达式中使用\(和\)符号括起正则表达式,即可在后面使用\1,\2等变量来访问\(和\)中的内容,如下
将data1 data2修改为data2 data1
:s/\(\w\+\)\s\+\(\w\+\)/\2\t\1

后续继续补充!

vim功能之替换和查找

时间: 2024-08-01 22:45:43

vim功能之替换和查找的相关文章

在VIM中进行快速的查找和替换

VIM是被誉为非常高效的文本编辑软件.但是掌握并高效的使用是件有难度的事情.在VIM中进行快速的查找和替换是提高VIM使用效率的重要方法.下面是我在阅读VIM用户手册时整理的一些资料: 行内搜索. f命令可以进行行内搜索.输入fx可以找到下一个x字符. F命令可以在反方向进行行内搜索,输入Fx可以找到上一个x字符. t命令同样是进行行内搜索,但是光标停留在符合条件的字符的前面.输入tx使光标停留在下一个x字符的前面. T命令可以在反方向进行行内搜索,但是光标停留在符合条件的字符的下一个字符上.输

#转#VS2012 正则表达式 动态插入 动态替换 (查找和替换工具)

http://www.chinabaike.com/t/9642/2014/0623/2539877.html 在用VS做编码开发时,我们常会用到其自带的"查找和替换"这个工具. 关于用正则替换,有一些容易被遗忘的非常有用的功能.比如,正则动态插入并替换. 通常,如果我们要查找源文件中的固定字符"A",并替换成固定字符"B",那么简单,只需分别在查找框输入"A"和替换框输入"B",然后点查找.替换按钮就可以

Vim正则表达式匹配替换字符串

/********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用Vim用了几年了,平时也就替换字符串比较多,很少用正则表达式替换, * 今天在修改HTML文档的时候,不想一个一个去替换. * * 2018-6-1 深圳 宝安西乡 曾剑锋 ****************************************************************

phpmyadmin登录后显示“phpMyAdmin 高级功能尚未完全设置,部分功能未激活。查找原因...。”错误提示

在安装完XAMPP后,设置mysql中root账户密码为123456,并修改phpmyadmin配置中root的密码为123456之后,但是phpmyadmin登录后显示"phpMyAdmin 高级功能尚未完全设置,部分功能未激活.查找原因.或者也可以去某个数据库的"操作"选项卡那里进行设置."错误提示. 这是因为phpmyadmin数据库没有创建表导致的,具体设置步骤如下: 1.登录phpmyadmin,导入*/xampp/phpmyadmin/sql/creat

sed 使用扩展正则式的分组功能进行替换

以下命令使用sed的扩展正则式的分组功能进行替换,-r参数启用扩展正则式支持 sed -r -i 's/(PASS_MAX_DAYS)\s+([0-9]+)/\1 90/' /etc/login.defs 这条命令将/etc/login.defs文件的行 PASS_MAX_DAYS 99999 替换为 PASS_MAX_DAYS 90 以下正则式支持分组功能,()表示一个分组 (PASS_MAX_DAYS)\s+([0-9]+) 将PASS_MAX_DAYS放在分组1中,[0-9]+匹配任意多个

VIM 技巧 (二)查找与替换

今天和大家分享下  对于  vim 中 查找与替换方法 例如有一篇文章.中英文不限制. 用户如果想查找其中的文字或单词 在 win系统的Notepad中一般都时 ctrl + F 去查询 而在 vim 中 我们直接 /需要查询的单词 即可. 通过此命令还可以将文章中的剩余单词全部高亮显示. 用户只需要按 n 就可以下一个 按 N 就可以上一个 以上这是查找方法 -------------------------------------------- 如果想查找后替换应该怎么办呢? 其实很简单.

linux vim的使用快捷键之查找与替换

查找 /csdn      向下查找一个名称为csdn的字符串 ?csdn   向上查找一个名称为csdn的字符串 n      n是英文字母,表示向下继续查找前一个查找的操作(和上面的操作配合使用) N     N是英文字母,表示向上继续查找前一个查找的操作(和上面的操作配合使用) 替换 :n1,n2s/word1/word2/g n1和n2为数字.表示在n1和n2行之间查询word1,并将这个字符串替换为word2. 例如: :10,20s/csdn/good/g 表示在10到20行之间,把

vim功能使用

转自:http://blog.csdn.net/xiajun07061225/article/details/7039413 vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻. vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序

linux 笔记--vim编辑器,组合条件,文件查找,SUID特殊权限

vim:全屏编辑器,模式化编辑器 vim模式:编辑模式(命令模式)   输入模式   末行模式 模式转换: 编辑--输入:i 在当前光标所在字符的前面转为输入模式.  a 在当前光标所在字符的后面转为输入模式.  o 在当前光标所在行的下方,新建一行并转为输入模式.  I 在当前光标所在行的行首转为输入模式.  A 在当前光标所在行的行尾转为输入模式.  O 在当前光标所在行的上方,新建一行并转为输入模式. 输入--编辑:ESC 编辑--末行:(只能从编辑模式转换到末行模式) :冒号 末行--编