Day 11:批次修改!!

昨天体验了一些快捷键和命令,今天要讲的是在 vim 中也很常用的搜寻与取代

搜寻与取代

vim 的搜寻与取代是由命令 s 达成的,命令格式长这样

:[范围修饰字]s/abcd/efgh/[旗标]

其中 abcd正规表达式(regular expression,缩写 regex,在中国常写成「正则」),regex 除了在 vim 可以用之外,几乎所有程序语言都可以用,还有 grepsed 等 linux 指令也都是使用 regex,关於 regex 的用法在这里就不多提了,MDN 上有很完整的解释
你应该有注意到上面的命令格式里面除了正规表达式之外还有「范围修饰字」和「旗标」,这就是接下来这段的重点啦!

范围修饰字

这个东西也不只是搜寻与取代可以用,只要你觉得需要限制某个指令的作用范围都可以用样的逻辑接下去
范围修饰可写可不写,如果不写的话搜寻与取代就只会在游标在的那一行起作用,加上百分比符号 % 代表作用范围是整份文件,也可以加上行号代表只作用在某一行,如果是两个行号中间以逗号隔开,代表是作用在这两个行号之间

vim replace
范围修饰字范例

范围选取

刚刚的范例中有出现用行号作范围选取,其实范围选取还有一个更简单的方式 ——「选取模式」。选取模式和编辑模式、命令模式是同等地位的东西,进入选取模式的快捷键有下列几个(一样要进到命令模式才能进选取模式)

快捷键 说明
v 一般选取,以「字」为单位
S-v(大写 v ) 一般选取,以「行」为单位
C-v 垂直选取,这个比较不常用,但是需要的时候蛮好用的

选取後一样可以打指令和快捷键,但是这些就只会作用在选取的范围内,常常搭配的有 d(剪下)、y(复制)、:s(搜寻与取代)
再把一个范围选取起来後,如果是快捷键就直接按,如果是命令的话按下冒号 :,平常只有冒号的命令行会先出现 :'<,'>,这串东东代表的就是这一个范围的范围修饰字,不用删掉,直打指令就可以了

vim select
选取结合指令与快捷键

旗标

旗标这个东西主要是在控制搜寻的行为,例如全部取代取代前先问一下之类的,多个旗标可以组合,不管顺序,下面是几个可能会用到的旗标

旗标 说明
g 整行搜寻,如果不加的话只会取代第一个
c 在取代前先确认
i 忽略大小写
vim replace flag
旗标范例

结尾

这两天讲的大部份是操作性质的东西,不需要一次全部记起来,用的多了自然会记得,现在只需要先有个印象就可以了。其实 vim 很多操作、快捷键都很直觉,不妨自己多试试看加了 Shift、CTRL 之後原本的快捷键会有什麽变化
vim 的操作还有很多技巧,如果有兴趣不妨去看看 vim 的文件(用命令 :help )中相关章节(大概是 usr_03~04 左右)的介绍,你会对 vim 有非常全面的认识。虽然文件是英文写的,但是并没有太难的单字,大概国中程度就可以看了


<<:  JavaScript入门 Day19_function介绍2

>>:  【在厨房想30天的演算法】Day 09 资料结构:伫列 Queue

ISO 27001 资讯安全管理系统 【解析】(六)

五、了解利害关系者的需求和期望 组织必须确定与资讯安全管理系统相关的利害关系者及其要求,有关利害关系...

[13th][Day11] image tag

pull 一个 ubuntu image docker pull ubuntu:19.04 列出现有...

Day 22 : 案例分享(7.1) 库存与制造 - 库存移动(调拨)流程

案例说明及适用场景 库存是odoo中很特别的功能或流程 单纯以功能的思考核心有二个,复式库存及推拉规...

威胁建模-DREAD

-Stride、VAST、Trike 等:哪种威胁建模方法适合您的组织? 风险敞口是根据可能性、後...

Day 7 - 数学是不是会击垮一个人的信心? 会

简介 上一篇介绍了如何利用2进位来表示10进位的数字,这次则要再进阶的介绍一下4、8、16进位。在下...