1. 前言

本文主要讲解如何在vi编辑器中搜索和替换字符。

vi提供了几种通过搜索指定字符串来搜索文件内容的指定位置的方法。vi还具有强大的全局替换功能。

vi如何搜索和替换字符

2. vi搜索字符串

字符串是连续的一个或多个字符。字符串可能包括字母、数字、标点符号、特殊字符、空格、制表符或回车符。字符串可以是语法单词,也可以是单词的一部分。

vi搜索字符串

要查找字符串,请键入/后跟要搜索的字符串,然后按Return。vi将光标定位在字符串的下一个位置。例如,要查找字符串meta,键入/meta并返回。

键入n转到字符串的下一个匹配项。键入N以转到前面的搜索结果。

要在文件中向后搜索,可以使用?而不是/。在这种情况下,n和N的方向相反。

搜索通常区分大小写:搜索A不会找到a。如果你想让vi在搜索过程中忽略大小写,输入:set ic。要把它改回默认的大小写模式,输入:set noic。

如果vi找到请求的字符串,光标将在第一次出现时停止。如果没有找到字符串,vi将显示在屏幕最后一行没有找到的模式。

某些特殊字符(/ & !。^ *

不能识别此Latex公式:

\ ?)对搜索过程有特殊意义,在搜索中使用它们时必须“转义”。若要转义特殊字符,请在它前面加上反斜杠\。例如,搜索字符串anything?输入/anything\?并按回车。

您可以使用这些特殊字符作为搜索函数的命令。如果要搜索包含一个或多个此类字符的字符串,则必须在特殊字符前加上反斜杠。要转义反斜杠本身,请键入\。

3. vi精准搜索

你可以使搜索更精确的标签字符串与指标为下列特点:

开始行

行结束

开始的单词

结束词

通配符

vi精准搜索

若要匹配行首,请使用插入符号(^)开始搜索字符串。例如,要查找以abc开头的下一行,输入:

/^abc

若要匹配一行的结尾,请使用美元符号(

)结束搜索字符串。例如,查找以abc结尾的下一行。输入:

/abc\.$

注意,句点是用反斜杠转义的。

若要匹配单词的开头,请在字符串的开头输入。因此,要匹配一个单词,而不是字符串,请在搜索模式中组合单词结尾和单词开头标记。例如,要查找下一个出现的单词—而不是字符串abc,输入:

/\

要匹配任何字符,请在要匹配的位置的字符串中键入句点.。例如,要查找下一个出现的“假信息”或“错误信息”,输入:

/.isinformation

因为这是一个字符串的搜索,而不是一个单词,所以这个搜索模式也可能会发现misinformationalist和disinformationism这样的结构。

要搜索字符串中的可选字符,请将可选字符括在括号中。搜索模式/[md]stringfind以“m”或“d”开头的字符串。相反,/[d-m]字符串可以查找从“d”到“m”的任何字母开头的字符串。

若要匹配最后一个字符的零次或多次出现,请在字符串中键入星号*。您可以有效地组合方括号和星号来查找定义良好的替代方案。例如,要查找所有以a到z开头、以isinformation结尾的字符串,并查找所有出现的字符串isinformation,输入:

/[a-z]*isinformation

4. vi替换字符串

替换文本字符串的过程基于前面讨论的搜索过程。您可以在“搜索并替换”中使用所有特殊匹配字符进行搜索。

vi替换字符串

基本的命令形式是:

:g/要搜索字符/s//被替代的字符/g

然后按回车键。

因此,要用newspeak替换字符串disinformation的每次出现,输入:

:g/disinformation/s//newspeak/g

然后按回车。

您可以修改这个命令来停止搜索,并使vi查询是否希望在每个实例中进行替换。下面的命令使用gc(c代表“consult”,即交互询问)使vi在出现disinformation时停止,并询问是否要进行替换。用y表示是,用n表示不是。

:g/disinformation/s//newspeak/gc

您可以通过按Ctrl-C取消“交互询询问”搜索和替换功能。

5. 总结

通过本文,你应该对vi的日常操作有所了解了吧?特别是搜索和替换功能。

linux vi 替换字符串,Linux vi编辑器如何查找与替换关键字相关推荐

  1. linux shell 字符串操作(长度,查找,替换)详解 BASH

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

  2. 【python cookbook】【字符串与文本】5.查找和替换文本

    问题:对字符串中的文本做查找和替换 解决方案: 1.对于简单模式:str.replace(old, new[, max]) 2.复杂模式:使用re模块中的re.sub(匹配的模式, newstring ...

  3. linux替换windows换行符_vim编辑器的查找与替换

    vi是unix和linux系统上最强大和最普遍的文本编辑工具,一般而言,对于初次接触vi的朋友,往往对它的字符替换不是很熟悉,下面做一个简单的介绍: 方法如下:1.命令模式下输入"/字符串& ...

  4. linux shell 字符串操作(长度,查找,替换)详解

    引用 参考  http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 在做shell批处理程序时候,经常会涉及到字符串相关操作.有 ...

  5. 【备忘】linux shell 字符串操作(长度,查找,替换,匹配)详解

    为什么80%的码农都做不了架构师?>>>    在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内 ...

  6. Linux基础 -- vim编辑器3 -- 查找和替换

    2019独角兽企业重金招聘Python工程师标准>>> 1.字符的替换及撤销(Undo操作) 1.1.替换和撤销(Undo)命令 替换和Undo命令都是针对普通模式下的操作 命令 说 ...

  7. linux 正则截取字符串,Linux的Shell脚本——day4——字符串截取、正则

    零散知识点 ftp操作: ftp 服务器IP  连接ftp,可以进行交互操作 注意搭建ftp服务是vsftpd,要区别 特殊的一个常用 ${#变量}  统计变量的长度位数 脚本中对一个文件进行撰写 c ...

  8. shell 字符串操作(长度,查找,替换)详解

    #################################################### 工作中字符串操作举例 #################################### ...

  9. 替换字符串指定位置字符 php,PHP substr_replace 替换字符串指定位置字符

    摘要 腾兴网为您分享:PHP substr_replace 替换字符串指定位置字符,永安期货,兔兔府,千题库,平安知鸟等软件知识,以及红雪,圈圈,premierecs5,爱玩游戏盒,极压缩,中秋节快乐 ...

  10. 使用nano编辑器进行查找和替换

    笔者自己常用的是vim.这里nano的使用场景就是刚安装好Ubuntu系统,想要替换更新源,这时候还没装上vim.所以,学一下如何用nano查找和替换,可以解决这个小问题. 首先sudo nano / ...

最新文章

  1. python中DictVectorizer的使用
  2. ASN.1编解码:asn1c的基本使用
  3. python pyhook_python使用pyHook.HookManager()返回来的event中,event.Time肿么转换成为datetime形式?...
  4. 二元置信椭圆r语言_医学统计与R语言:Meta 回归作图(Meta regression Plot)
  5. 用RCircos包来画圈圈图
  6. 你不知道的在线免费caj转Word
  7. 可能是最漂亮的Spring事务管理详解
  8. [zt]给你的Mp4大换血,精选Touch里3年收集的900多首歌,经典不忍去的最新近流行的,与你共享~~...
  9. Keen Team: 这群执著的人和那些纯粹的事
  10. AP作为WLAN用户接入认证点的PEAP用户接入流程
  11. 这个世界有病,我们都有病
  12. Linux下配置网卡信息
  13. SSM+智能社区服务的设计与实现 毕业设计-附源码221512
  14. 试写一个算法,识别依次读入的一个以“@”为结束符的字符序列是否为形如“序列1序列2”模式的字符序列。其中序列1和序列2都不含字符“”,且序列2是序列1的逆序列。例如,“a+bb+a”是属该模式
  15. 【Linux】记录人生第一次LVM操作全过程:新建LV、扩容LV
  16. python之魔术方法
  17. amis:amis编辑器生成JSON使用方法。
  18. vue中Echarts之省市地图(北京市)展示相关数据
  19. Centos7 安装Nat123 内网穿透
  20. 【好词好段摘抄】【转载】

热门文章

  1. 阿里云生成SSH秘钥对,使用SCRT登录阿里云服务器
  2. 基于51单片机+DS1302时钟模块+LCD1602显示
  3. DDoS攻击的工具介绍
  4. python 爬取网易云音乐歌单
  5. python达梦数据库_Python 封装 DM 达梦 数据库操作(使用类封装基本的增删改查)...
  6. h5网站模板_超全超实用的80个模板网站,我全部整理在这里了
  7. 十大经典排序算法总结
  8. java编程基础 | 练习题
  9. python机器人编程教程入门_机器人编程怎么入门?
  10. 开源物联网云平台 Thingsboard入门