一,":substitute"的使用

:substitute 命令可以对一个指定范围的区域执行替换操作,可以简写为:s ,它的通用形式如下:

:[range]substitute/from/to/[flags]  该命令是有[range]指定范围中字符串"from"替换为"to";

例如文本的每一行中第一次出现"linux"替换为"FreeBSD":

:%s/linux/FreeBSD/   注意:这里最后面没有加上标记,针对的是每行第一次出现的目标字符串 

其中%为指定范围的所有行,如不指定返回,:s 就是作用与当前行;

默认情况下:s命令只会替换一行中第一次发现的目标字符串,要改变一行中的所有符合的字符串,可以在命令后加"g"标记来修饰;

:%s/linux/FreeBSD/g  后面加上个g才代表改变每一行所有符合的目标字符串;

其他标记符还有p(列印),c(确定)标记告诉:substitute命令要执行每个替换前请求用户确定;

如:

:%s/linux/FreeBSD/gc  全文内容linux替换成FreeBSD时都提示请求用户确定;

目标字符串from可以是任意合法的正则表达式,与搜索命令的所用的正则表达式一样;如:

:s/^linux/FreeBSD/

二,作用范围

:1,5s/this/that    作用范围为1至5行;

:8s/this/that     作用范围为第8行;

:.s/this/that     作用范围为当前行,可以省略,要使作用于当前行在命令前面加.

:1,$s/this/that    作用于所有行;

:w          这些命令可以不指定范围,针对的是整个文件

:%s         作用于所有行,等同于1,$

:.+3,$-5      作用范围从当前行其下的第3行,到倒数第6行;

:'s,'e        使用标记来指定的范围,ms标记范围的开始,me指定范围的结束;

:'<,'>        可视模式下的范围,在选定范围后按:自动出现'<,'>范围,不用自己输入;

三,标识符[flags]

g  作用于所有文件内容;

c  c(确定)标记告诉:substitute命令要执行每个替换前请求用户确定;

p  p(列印);

Vim 替换命令的更多相关文章

  1. vim替换命令

    转载:http://blog.csdn.net/glorin/article/details/6317098 替換(substitute) :[range]s/pattern/string/[c,e, ...

  2. 【转】vim替换命令

    vim替换命令 free:此文后面涉及了正则表达式,随便看了一下,觉得正则表达式有时间学一学对于在Linux下操作也是方便许多 替換(substitute) :[range]s/pattern/str ...

  3. Linux vi/vim替换命令的使用说明[转]

    vi/vim 中可以使用 :s 命令来替换字符串.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky:n, ...

  4. Vim——替换命令

     原创声明:本文系博主原创文章,转载或引用请注明出处. 1. 文本替换 #替换每一行的第一个a :%s/a/b/ #全部替换 :%s/a/b/g #替换/时需要转义"\/" 2. ...

  5. Linux vim替换命令

    #替换每一行的第一个a:%s/a/b/#全部替换:%s/a/b/g#替换/时需要转义"\/"

  6. vim 替换

    摘自: vim替换命令 替換(substitute) :[range]s/pattern/string/[c,e,g,i] range 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後 ...

  7. Vim global命令和重复操作

    Vim global命令和重复操作 Vim global命令允许我们在某个指定模式的所有匹配行上运行可执行的 Ex 命令,缩写形式为 :g,其处理重复工作的效率极高. 一.Vim global命令介绍 ...

  8. vim中替换命令

    在VIM中进行文本替换:       1.  替换当前行中的内容:    :s/from/to/    (s即substitude)         :s/from/to/     :  将当前行中的 ...

  9. vim替换及多行注释命令

    1.多行注释: . 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 . 按大写字母I,再插入注释符,例如// . 按esc键就 ...

随机推荐

  1. d3系列2--api攻坚战02

    <html> <head> <style type="text/css"> .area{ fill:steelblue; } </styl ...

  2. String、StringBuffer、StringBuilder区别并验证

    © 版权声明:本文为博主原创文章,转载请注明出处 String.StringBuffer.StringBuilder的区别 1.String是一个常量,其对象一旦创建完毕就无法改变,当使用“+”拼接字 ...

  3. php给图片添加文字水印方法汇总

    在php中要给图片加水印我们需要给php安装GD库了,这里我们不介绍GD库安装,只介绍怎么利用php给图片添加文字水印的4种方法的汇总.有需要的小伙伴可以参考下. 1: 面向过程的编写方法 1 2 3 ...

  4. CAN协议学习(一)协议介绍

    一.简介 CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议. 在当前的汽车产业中,出于对安全性.舒适性.方便性.低公害.低成 ...

  5. [译]GLUT教程 - 整合代码4

    Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> The Code So Far IV 以下代码使用了位图字 ...

  6. IntelliJ IDEA 2014 付费版 免费版比较

    http://www.jetbrains.com/idea/features/editions_comparison_matrix.html Freemarker, Velocity IDE Feat ...

  7. CentOS6.9 下编译安装MySQL5.7.19

    官网:https://www.mysql.com/ 下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19.tar.gz 一.准备工作 ...

  8. Selenium 应用 WebDriverWait 和 expected_conditions(待验证)

    收藏在我的收藏看不到,只能copy了,转载至http://www.cnblogs.com/yicaifeitian/p/4749149.html 哈哈,我始终相信贴出来总会有人看.WebDriverW ...

  9. 实战c++中的vector系列--creating vector of local structure、vector of structs initialization

    之前一直没有使用过vector<struct>,如今就写一个简短的代码: #include <vector> #include <iostream> int mai ...

  10. GoogleMap-------API KEY申请流程

    前言:此文是关于Google Maps Android API v2 KEY的申请流程介绍. 1.首先访问https://code.google.com/apis/console/?pli=1#pro ...