Vim查找替换

Vim查找替换1、查找/pattern:向下查找pattern匹配字符串?pattern:向上查找pattern匹配字符串使用了查找命令之后,使用如下两个键快速查找:n:按照同一方向继续查找N:按照反方向查找除此之外,pattern还可以使用一些特殊字符,包括(/、^、$、*、.),其中前三个这两个是vi与vim通用的,“/”为转义字符。在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。例如:/foo\c将会查找所有的”foo”,“FOO”,”Foo”等字符串1:/^abc

大家好,又见面了,我是你们的朋友全栈君。

1、查找

/pattern :向下查找pattern匹配字符串
?pattern:向上查找pattern匹配字符串

使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找
N:按照反方向查找

除此之外,pattern还可以使用一些特殊字符,包括(/、^、$、*、.),其中前三个这两个是vi与vim通用的,“/”为转义字符。

在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。例如:
/foo\c将会查找所有的”foo”,“FOO”,”Foo”等字符串

1: /^abc #查找以abc开始的行
2: /abc$ #查找以abc结束的行
3: //^abc #查找^abc字符串

2、查找与替换

:’<,’>s/foo/bar/g 选区,在Visual模式下选择区域后输入:,Vim即可自动补全为 :’<,’>。

命令用来查找和替换字符串。语法如下:
:{作用范围}s/{目标}/{替换}/{替换标志}

:%s/foo/bar目标的第一次出现将foo替换为bar
:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(global)
: s/foo/bar/g当前行将foo替换为bar
:%s/foo/bar/g全文行将foo替换为bar
:5,12s/foo/bar/g第5到12行将foo替换为bar
:.,+2s/foo/bar/g当前行.与接下来两行+2将foo替换为bar
:%s/foo/bar/i 表示大小写不敏感查找,I表示大小写敏感:
:%s/foo\c/bar等效于模式中的\c(不敏感)或\C(敏感)
:%s/foo/bar/gc 这里c表示需要确认,例如全局查找”foo”替换为”bar”并且需要确认
replace with bar (y/n/a/q/l/E/Y)? 回车后Vim会将光标移动到每一次”foo”出现的位置,并提示按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。E与Y是光标移动快捷键,参考: Vim中如何快速进行光标移

1、 : s/vivian/sky/ #替换当前行第一个 vivian 为 sky
2、 : s/vivian/sky/g #替换当前行所有 vivian 为 sky
3、 :n,KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 19: …ivian/sky/ #̲替换第 n 行开始到最后一行中…s/vivian/sky/g #替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
(n 为数字,若 n 为 .,表示从当前行开始到最后一行)
5、 :%s/vivian/sky/ #(等同于:1,$s/vivian/sky/ :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky

可以使用 #或+ 作为分隔符,此时中间出现的 / 不会作为分隔符
1、: s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
2、:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/

1、 : s/str1/str2/ #用字符串 str2 替换行中首次出现的字符串 str1
2、 : s/str1/str2/g #用字符串 str2 替换行中所有出现的字符串 str1
3、 :.,$ s/str1/str2/g #用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
4、 :1,$ s/str1/str2/g #用字符串 str2 替换正文中所有出现的字符串 str1
5、 :g/str1/s//str2/g #功能同上

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148264.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java rsa加解密_Java开发工具

    java rsa加解密_Java开发工具RSA的应用RSA是一种非对称加密算法。现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密。Base64编码apache.commons-codex包提供了许多编码格式转换,例如Base64。以下为Base64编码表使用apache.commons-codex进行Base64对字符串进行编码与解码的程序如下:packagecom.qian.encod…

    2022年5月3日
    27
  • Ajax工作原理及实例「建议收藏」

    Ajax工作原理及实例「建议收藏」1、关于ajax的名字ajax 的全称是AsynchronousJavaScriptandXML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用

    2022年7月4日
    23
  • Spring学习——Spring常用数据库访问设置

    Spring学习——Spring常用数据库访问设置

    2022年2月24日
    43
  • 线程池实现原理_最通俗易懂的解读比特币相关原理

    线程池实现原理_最通俗易懂的解读比特币相关原理本篇内容综合广大网友提供内容,笔者经过整理,对数据库连接池原理和实现过程做个很系统的并且通俗易懂的分析讲解,以及手写一个连接池实现过程作为演示。一、早期通过JDBC方式操作数据库我们先来看早期使用JDBC的方式操作数据库的过程,这里以mysql数据库为例讲解JDBC操作数据库原理:一般来说,java应用程序访问数据库的过程是:   ①装载数据库驱动程序;   ②通过jdbc…

    2022年9月16日
    0
  • java工程师薪资待遇_java软件工程师一个月挣多少钱

    java工程师薪资待遇_java软件工程师一个月挣多少钱Java软件工程师工资待遇详解时间:2018-08-16来源:未知Java软件工程师工资待遇情况怎么样?Java软件工程师的工资水平与哪些因素有关呢?今天小编从这两方面和大家来进行分析一下Java工程师工资待遇。Java软件工程师工资待遇情况据有关数据显示,目前,我国对软件人才的需求已达20万,并且以每年20%左右的速度增长。在未来5年内,合格软件人才的需求将远大于供给。2016年的时候…

    2022年9月24日
    0
  • MFC CCriticalSection 关键段

    MFC CCriticalSection 关键段和其他同步对象不同,除非有需要以外,关键区域工作在用户模式下。若一个线程想运行一个封装在关键区域中的代码,它首先做一个旋转封锁,然后等待特定的时间,它进入内核模式去等待关键区域。实际上,关键区域持有一个旋转计数器和一个信号量,前者用于用户模式的等待,后者用于内核模式的等待(休眠态)。在Win32API中,有一个CRITICAL_SECTION结构体表示关键区域对象。在MFC中,有一个类CCri

    2022年7月21日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号