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功能之替换和查找的更多相关文章

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

    VIM是被誉为非常高效的文本编辑软件.但是掌握并高效的使用是件有难度的事情.在VIM中进行快速的查找和替换是提高VIM使用效率的重要方法.下面是我在阅读VIM用户手册时整理的一些资料: 行内搜索. f ...

  2. vim g s 替换区别

    vim g s 替换区别     PS:一篇好文收藏备用,今天用它解决了一个大问题. 发信人: vale (浅谷), 信区: VIM标  题: global命令详解 发信站: 水木社区 (Fri Ju ...

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

    /********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用V ...

  4. 【转载】vim 中如何替换选中行或指定几行内的文本

    https://segmentfault.com/q/1010000002552573/a-1020000002552589 :'<,'>s/替换项/替换为/g 以下命令将文中所有的字符串 ...

  5. Sublime Text3工具的安装、破解、VIM功能vintage插件教程

    1.安装Sublime Text 3  下载安装:http://www.sublimetext.com/3 Package Control安装:https://sublime.wbond.net/in ...

  6. Sublime Text3工具的安装、破解、VIM功能vintage插件教程(已经实践、绝对可用)

          工欲善其事,必先利其器.Sublime Text是一款很好的开发工具,开发php项目很好用,尤其是Sublime Text的一些插件功能,可以享用VIM的快捷编辑和html.js等自动补全 ...

  7. VIM 技巧 (二)查找与替换

    今天和大家分享下  对于  vim 中 查找与替换方法 例如有一篇文章.中英文不限制. 用户如果想查找其中的文字或单词 在 win系统的Notepad中一般都时 ctrl + F 去查询 而在 vim ...

  8. Vim -&gt; 边确认边查找替换

    进行简单的全局查找替换的时候,能够使用ex的例如以下命令 :%s/which/what/g 它的使用方法比較简单 % 表示每一行(everyline) s 替换(substitue) which 查找 ...

  9. vim功能使用

    转自:http://blog.csdn.net/xiajun07061225/article/details/7039413 vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就 ...

随机推荐

  1. 快捷键(二):VSCode

    1,打开命令板:F1或Ctrl+Chift+P 2,新建文件:Ctrl+N 3,文件间切换:Ctrl+Tab 4,新开界面:Ctrl+Shift+N 5,关闭当前窗口:Ctrl+W 6,关闭界面:Ct ...

  2. Servlet转发

    可以使用ServletContext中的getRequestDispatcher(url).forward(request, response)方法进行转发 myservlet2.java publi ...

  3. C 语言实例 - 判断三边能否构成三角形

    原理: 要判断输入的三条边能否够成三角形,只需满足条件两边之和大于第三边即可. #include<stdio.h> int main() { printf("请输入三个边长:\n ...

  4. toString()和toLocaleString()方法有什么区别和联系

    toString()和toLocaleString()有什么区别 偶然之间用到这两个方法 然后在数字转换成字符串的时候,并没有感觉这两个方法有什么区别,如下: 1 2 3 4 5 6 7 8 var  ...

  5. DIV 设置垂直居中

    要说面试官经常问的问题中“如何将一个块元素水平垂直居中”就算一个. 之前的面试中也有中招,现在总结一下. 1.CSS垂直水平居中 要让DIV水平和垂直居中,必需知道该DIV得宽度和高度,然后设置位置为 ...

  6. AttributeError: This QueryDict instance is immutable

    当写添加注册后端时,运行当运行时,会出现: "AttributeError: This QueryDict instance is immutable": 因为默认的 QueryD ...

  7. Linux - 常用Shell软件

    tldr conda dstat htop oh-my-zsh https://github.com/nicolargo/glances neofetch

  8. Web.config和App.config配置连接字符串

    读取配置文件,获取连接字符串 <!-- 第一种 --> <connectionStrings> <add name="connString" conn ...

  9. laravel 事件系统

    例子: 打开 VerificationController ,此控制器处理所有邮件认证相关逻辑: app/Http/Controllers/Auth/VerificationController.ph ...

  10. drat笔记

    安装dart https://www.dartcn.com/install http://www.cndartlang.com/920.html 所有执行的方法都在main里面. main() {} ...