VI 的搜尋取代語法格式大致如下

:[範圍]s/[比對字串]/[取代字串]/[g,c,i]

範圍部分:

範圍表示法為開頭 , 結束

	假如我要從第 1 行到第 150 行,可以這樣下: 1, 150

	假如我要從第 1 行到最後一行,可以這樣下: 1, $

	假如我要設定全部範圍,可以這樣下: % (其實跟 1, $ 意義是一樣的)

	假如我要從游標所在行之後到最後一行,可以這樣下:., $

小寫 s 代表意義:

告訴VI我要做 substitute(置換) 動作

比對/取代字串部分:

大小寫有分,如果內容為特殊字元,需加上 \ (脫曳字元)

EX:換行符號 \n

假如我要設定的是一個"單元",前後需用 \( 和 \) 包起來,後面會說明詳細用法

g c i參數分別代表的意義:

這個部分是選擇性的,也就是額外控制項

由於 VI 對大小寫是有區別的,如果要忽略大寫小可以用 「i」(忽略) 這個參數來控制

如果不加上「g」這個控制項,VI只會把每行比對到的第一個做取代動作,加上「g」能確保每行的每個字都能被比對到

有時候,有些特殊的地方是你不想取代的,可以用「c」(確認) 這個參數來控制

	如此一來,每次比對到的時候,會詢問 (y/n/a/q/l/^E/^Y)? 這些參數

	y 是代表執行目前的取代。

	n 是跳過。

	a 代表 always ,就是從目前以後的取代都會執行。

	q 則是不要作取代,並且離開詢問要不要取代的狀態,並回到指令模式或原來的模式下。

	l 則是 last 的意思,就是目前這個取代執行後就離開詢問的取代模式,回到指令模式或原來的模式下。

	^E 表示往前一頁。

	^Y 表示往後一頁。

範例語法:

我要把文件中的所有 awei 置換成 AwEi

:%s/awei/AwEi/g

以上資料來自 http://awei791129.pixnet.net/blog/post/29353976-[linux][vi]-vi-or-vim-的搜尋取代功能

vim 搜尋取代功能的更多相关文章

  1. vim的多窗口功能与环境参数设置

    Vim的多窗口功能 多窗口情况下按键功能 :sp [filename] 打开一个新的窗口,如果有加filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一文件内容 :[ctrl]+w+j( ...

  2. 转载自csdn http://blog.csdn.net/ithomer/article/details/6035627 Vim的分屏功能

    Vim的分屏功能 目录(?)[+] 本篇文章主要教你如何使用 Vim 分屏功能 分屏启动Vim 使用小写的o参数来上下分屏(横向分屏). vim -on file1 file2 ... 使用大写的O参 ...

  3. vim之快速查找功能

    vim有强大的字符串查找功能. 我们通常在vim下要查找字符串的时候, 都是输入 / 或者 ?  加 需要查找的字符串来进行搜索,比如想搜索 super 这个单词, 可以输入  /super  或者 ...

  4. VIM配置自动提示功能

        问题描述:                  使用VIM作为Linux下的IDE,但是VIM默认情况下不支持自动代码提示功能,因此希望安装插件实现自动提示功能,目前找到的自动提示工具,非常好用 ...

  5. Vim的分屏功能

    本篇文章主要教你如何使用 Vim 分屏功能. 分屏启动Vim 使用大写的O参数来垂直分屏. vim -On file1 file2 ... 使用小写的o参数来水平分屏. vim -on file1 f ...

  6. Vim的分屏功能(转)

    注:本文属于转载,源地址:http://blog.csdn.net/ithomer/article/details/6035627(博主很牛,欢迎关注) 本篇文章主要教你如何使用 Vim 分屏功能 分 ...

  7. Linux系统下vim常用快捷键及功能

    1. 什么是vim Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在vi的基础上改进和增加了很多特性. vim编辑器是Linux系统下标准的编辑器,作用相当于windows系统中的记 ...

  8. vim好用的功能 sublime text2类似的实现系列一

    sublime的跳转 功能 快捷键 备注 往回跳 alt+- 和vim一样方便,可以在页面些跳转,定位到上次编辑的地方 往前跳 alt+shift+- 无 定义或取消标记 ctrl+<F2> ...

  9. vim实现全选功能

    转自:http://blog.csdn.net/csh159/article/details/7533872 曾经也在找看看有没有快捷的方法全选,但是网上很多都是重复,并且错误的,比如: 1,$y,这 ...

随机推荐

  1. 在生产环境下实现每天自动备份mysql数据库

    1.描述 我相信很多朋友在工作都都会有这种需求,老板或领导让你每天都要备份mysql数据库,你该如何实现呢,是每天到一定的时间在服务器上敲一遍mysql的备份命令,还是想写个脚本,定时定点的自动备份呢 ...

  2. css3 横向拖拽

    css: .tab{         list-style-type: none;         display:-webkit-box;         display:-webkit-flex; ...

  3. thinkphp 3.2.3 程序执行时序图

  4. centos7安装phpstudy

    操作系统:CentOS 7 x86_64 SSH登录工具:FinalSHell 2.9.7 一.安装phpstudy 1.下载完整版: wget -c http://lamp.phpstudy.net ...

  5. [转]using components in Cakephp 2+ Shell

    <?php App::uses('AppShell', 'Console/Command'); App::uses('ComponentCollection', 'Controller'); A ...

  6. apizza导出为html后,从中提取api_name/api_path/api_method,保存到本地,方便根据接口名称得到接口路径与请求方法

    import re import os def open_file(file='c:/newcrm.html'): f=open(file,'r',encoding='utf-8') return f ...

  7. Codeforces 1062E 题解

    给出一棵有根树,1为根结点,接下来q次询问,每次给出一个[l,r]区间,现在允许删掉[l,r]区间内任何一个点,使得所有点的最近公共祖先的深度尽可能大,问删掉的点是哪个点,深度最大是多少. 做法: 线 ...

  8. hnust CZJ-Superman

    问题 B: CZJ-Superman 时间限制: 1 Sec  内存限制: 128 MB提交: 636  解决: 87[提交][状态][讨论版] 题目描述 “那是只鸟?那是飞机?那是——超人!” 程序 ...

  9. webpack vue-cli 常见问题总结

    1. webpack打包压缩 ES6 js..vue报错: ERROR in js/test.js from UglifyJs Unexpected token punc ?(?, expected ...

  10. MQ、JMS以及ActiveMQ的了解和认识

    新加入的公司中,架构用到了activeMq,对于以前只了解nginx.tomcat的我有点懵逼,所以在网上找点资料看看,了解下什么是MQ,activemq.具体作用是什么 MQ MQ简介: MQ全称为 ...