资讯专栏INFORMATION COLUMN

Vim实战指南(五):文本替换

ad6623 / 2373人阅读

摘要:原文地址实战指南五文本替换在编辑代码时,有时候你希望对变量或者函数重命名。提供了强大的替换功能,比其他普通编辑器的更好用。事实上你打不用如此麻烦,只需下面简单的替换即可本文列出了常用的文本编辑中全局替换的方法。

原文地址:Vim实战指南(五):文本替换

Introduction

在编辑代码时,有时候你希望对变量或者函数重命名。vi提供了强大的替换功能,比其他普通编辑器的ctrl+r更好用。

替换

vi的替换基于ex命令:

:s/old/new/g:将当前行所有的old替换成new,s是substitute,g是global
:1,10s/old/new/g:将第1到第10行所有的old替换成new
:%s/old/new/g:将当前文件所有行的old替换成new,%是第一行的意思
:%s/old/new/gc:同上,但是替换前需要确认,c是confirm
:g/pattern/s/old/new/g:将符合pattern的行内的所有old替换成new,第一个g是指匹配pattern的所有行,第二个g是指行内所有的匹配old的字符串

正则表达式

下面列出正则表达式中使用的metacharacters:

.:匹配除了换行符之外的任何符号(包含空格),如a.a匹配aaa和aba
:重复前面(零次或多次)匹配符,如a匹配a和aa
^:当出现在表达式前面时,表示头部匹配,如^.匹配行首第一个字符
$:当出现在表达式尾部时,表示尾部匹配,如.$匹配行尾第一个字符
:转移符,如*表示匹配*,而不是重复前面的匹配符
[]:匹配中括号中任何一个匹配符,如[ab]表示匹配a或者b
():将括号中的模式保存
<>:匹配以<符号后开始和>符号前结束的单词

正则表达式可以结合上面的pattern使用,这里不再赘述。

技巧

在程序编写中,你觉得pan有歧义,你希望把所有的pan替换成panic:

:%s/pan/panic/g

稍后你发现,所有的panic被替换成了panicic,这不是我们想要的。你注意到pan后面都有一个符号,因此你使用:

:%s/pan[ ,.:;]/panic[ ,.:;]/g

接着你发现,这种匹配仍然有漏网之鱼,如pan=1,仍然需要匹配=号。
事实上你打不用如此麻烦,只需下面简单的替换即可:

:%s//panic/g
Summary

本文列出了常用的文本编辑中全局替换的方法。由于正则表达式从来都不是一个简单的话题,本文只是简单的介绍了如何在替换中使用正则表达式,事实上vi支持所有的正则表达式功能,可以完成任何你能想到的替换!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24864.html

相关文章

  • Vim实战指南(一):基础编辑命令

    摘要:原文地址实战指南一基础编辑命令和作为两大神级文本编辑器各有利弊,本实战指南不加讨论的介绍本实战指南不是教你按照的键位图来编辑文本,而是从实战的角度,教你如何快速的用来开发你的程序,节省你的开发时间。 原文地址:Vim实战指南(一):基础编辑命令 Introduction Vim和Emacs作为两大神级文本编辑器各有利弊,本实战指南不加讨论的介绍Vim.本实战指南不是教你按照Vim的键位...

    learn_shifeng 评论0 收藏0
  • Vim实战指南(四):ex命令

    摘要:原文地址实战指南四命令是下的一个文本编辑器。你已经见过中的,没错,这些就是来自于命令。当你希望显示某行,输入命令,显示器上才会显示那行。而控制这个显示器显示文本的命令行工具,就是。 原文地址:Vim实战指南(四):ex命令 Introduction ex是Unix下的一个文本编辑器。至于为什么突然讲到这个,那是因为vi就是ex的visual mode。你已经见过vi中的:w, :q!,...

    icyfire 评论0 收藏0
  • Vim实战指南(三):高级技巧

    摘要:原文地址实战指南三高级技巧当入门后,在你日常使用中,会遇到下面几个问题我编辑好的文本,怎么无法保存是不是要重新来一次我误操作,怎么回退撤销只能退出重新打开吗我能同时复制多个不连续的行吗一行一行复制粘贴太慢了。 原文地址:Vim实战指南(三):高级技巧 Introduction 当vi入门后,在你日常使用中,会遇到下面几个问题: 我编辑好的文本,怎么无法保存?是不是要重新来一次? 我误...

    zhunjiee 评论0 收藏0
  • Vim实战指南(二):光标移动技巧

    摘要:原文地址实战指南二光标移动技巧提升的打字效率的一个技巧就是快速移动光标。或许你觉得这不值一提,用或者上下左右也能移动,不过相信我,我下面要介绍的移动光标技巧绝对物超所值。 原文地址:Vim实战指南(二):光标移动技巧 Introduction 提升Vim/vi的打字效率的一个技巧就是快速移动光标。或许你觉得这不值一提,用hjkl或者上下左右也能移动,不过相信我,我下面要介绍的移动光标技...

    binaryTree 评论0 收藏0
  • ApacheCN 人工智能知识树 v1.0

    摘要:贡献者飞龙版本最近总是有人问我,把这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 贡献者:飞龙版...

    刘厚水 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<