昨天体验了一些快捷键和命令,今天要讲的是在 vim 中也很常用的搜寻与取代
vim 的搜寻与取代是由命令 s
达成的,命令格式长这样
:[范围修饰字]s/abcd/efgh/[旗标]
其中 abcd
是 正规表达式(regular expression,缩写 regex,在中国常写成「正则」),regex 除了在 vim 可以用之外,几乎所有程序语言都可以用,还有 grep
、sed
等 linux 指令也都是使用 regex,关於 regex 的用法在这里就不多提了,MDN 上有很完整的解释
你应该有注意到上面的命令格式里面除了正规表达式之外还有「范围修饰字」和「旗标」,这就是接下来这段的重点啦!
这个东西也不只是搜寻与取代可以用,只要你觉得需要限制某个指令的作用范围都可以用样的逻辑接下去
范围修饰可写可不写,如果不写的话搜寻与取代就只会在游标在的那一行起作用,加上百分比符号 %
代表作用范围是整份文件,也可以加上行号代表只作用在某一行,如果是两个行号中间以逗号隔开,代表是作用在这两个行号之间
范围修饰字范例 |
刚刚的范例中有出现用行号作范围选取,其实范围选取还有一个更简单的方式 ——「选取模式」。选取模式和编辑模式、命令模式是同等地位的东西,进入选取模式的快捷键有下列几个(一样要进到命令模式才能进选取模式)
快捷键 | 说明 |
---|---|
v | 一般选取,以「字」为单位 |
S-v(大写 v ) | 一般选取,以「行」为单位 |
C-v | 垂直选取,这个比较不常用,但是需要的时候蛮好用的 |
选取後一样可以打指令和快捷键,但是这些就只会作用在选取的范围内,常常搭配的有 d
(剪下)、y
(复制)、:s
(搜寻与取代)
再把一个范围选取起来後,如果是快捷键就直接按,如果是命令的话按下冒号 :
,平常只有冒号的命令行会先出现 :'<,'>
,这串东东代表的就是这一个范围的范围修饰字,不用删掉,直打指令就可以了
选取结合指令与快捷键 |
旗标这个东西主要是在控制搜寻的行为,例如全部取代、取代前先问一下之类的,多个旗标可以组合,不管顺序,下面是几个可能会用到的旗标
旗标 | 说明 |
---|---|
g | 整行搜寻,如果不加的话只会取代第一个 |
c | 在取代前先确认 |
i | 忽略大小写 |
旗标范例 |
这两天讲的大部份是操作性质的东西,不需要一次全部记起来,用的多了自然会记得,现在只需要先有个印象就可以了。其实 vim 很多操作、快捷键都很直觉,不妨自己多试试看加了 Shift、CTRL 之後原本的快捷键会有什麽变化
vim 的操作还有很多技巧,如果有兴趣不妨去看看 vim 的文件(用命令 :help
)中相关章节(大概是 usr_03~04 左右)的介绍,你会对 vim 有非常全面的认识。虽然文件是英文写的,但是并没有太难的单字,大概国中程度就可以看了
<<: JavaScript入门 Day19_function介绍2
>>: 【在厨房想30天的演算法】Day 09 资料结构:伫列 Queue
五、了解利害关系者的需求和期望 组织必须确定与资讯安全管理系统相关的利害关系者及其要求,有关利害关系...
pull 一个 ubuntu image docker pull ubuntu:19.04 列出现有...
案例说明及适用场景 库存是odoo中很特别的功能或流程 单纯以功能的思考核心有二个,复式库存及推拉规...
-Stride、VAST、Trike 等:哪种威胁建模方法适合您的组织? 风险敞口是根据可能性、後...
简介 上一篇介绍了如何利用2进位来表示10进位的数字,这次则要再进阶的介绍一下4、8、16进位。在下...