Vi和Vim的关系

简介: vi和vim

Vim 与 Vi 的关系,可以确定的是 Vi 的所有功能几乎都已经囊括到了 Vim 中,同时 Vim 较 Vi 的优势和亮点也是不胜枚举的,比如:
Vim 支持更多语言的语法高亮。
Vim 支持更多的操作系统和平台,包括 UNIX/Linux、Windows、MAC 等。
Vim 支持强大的插件功能。
Vim 支持通过 SSH/HTTP 方式的远程文本编辑功能。
Vim 支持多层级的 undo 和 redo。
Vim 可以直接编辑压缩包(gzip、bzip2、zip)中的文件。
基础替换用法
在 Vi 的普通模式下,先输入冒号(:),进入命令行模式,这是 Vi 做一切替换操作的前提。

假如我们想将 abc 替换为 xyz,那么就这样:
:s/abc/xyz/

不过要特别注意,这个替换没有你想象得那么顺利,因为它只能针对光标当前所在行进行替换,而且更糟糕的是,它只替换当前行中第一个匹配到的 abc。

举个例子,如果此行内容为“I write abc,I read xyz and abc.”。那么替换后的结果为“I write xyz,I read xyz and abc.”。

接下来,我们的改进方案来了,请注意,我们在替换命令的最后面加上了 g 这个字母:
:s/abc/xyz/g

这样可以实现在光标所在行,对所有匹配到的 abc 都替换为 xyz。继续举这个例子,如果此行内容为“I write abc,I read xyz and abc.”。那么替换后的结果为“I write xyz,I read xyz and xyz.”。

可惜的是,这个方案仍局限在光标所在行,还是无法替换文件中所有行中的 abc。所以,我们的方案继续改进,我们在替换命令的最前面加上了“1,$”的表达式:
:1,$s/abc/xyz/g

其实我们可以在替换命令的最前面加上类似“m,n”格式的表达式,来表示替换动作所能影响到的行范围,1 表示第一行,$ 表示最后一行。当然你也完全可以指定其他行范围,比如,10,50s/abc/xyz/g 就表示只替换第 10 行到第 50 行中的 abc。

在这里再教你一个小技巧,如果你想做全文替换,写 1,$ 要三个字符,而用 % 来代替,只需要一个字符,所以我们的替换命令可以改写为:
:%s/abc/xyz/g

相关文章
|
2月前
|
存储 开发工具
4.vim(vi)模式之一:命令行模式
4.vim(vi)模式之一:命令行模式
32 1
|
2月前
|
开发工具
3.vim(vi)模式之一:编辑模式
3.vim(vi)模式之一:编辑模式
19 0
|
28天前
|
开发工具 Docker 索引
Docker解决没有vi、vim等命令
Docker解决没有vi、vim等命令
54 0
|
2月前
|
开发工具
vi/vim的一些使用技巧
vi/vim的一些使用技巧
|
2月前
|
Linux 开发工具
Linux的基础编程——vi/vim编辑器(六)
Linux的基础编程——vi/vim编辑器(六)
34 0
Linux的基础编程——vi/vim编辑器(六)
|
2月前
|
开发工具
8.vim(vi)自定义环境变量
8.vim(vi)自定义环境变量
32 2
|
2月前
|
开发工具
7.vim(vi)多窗口功能
7.vim(vi)多窗口功能
36 1
|
2月前
|
Linux 开发工具
6.vim(vi)多文件编辑
6.vim(vi)多文件编辑
30 1
|
2月前
|
机器学习/深度学习 Java Linux
2.vim(vi)模式之一:一般模式
2.vim(vi)模式之一:一般模式
17 0
|
Linux 开发工具 vr&ar
Linux vi和vim编辑器、快捷键的使用
在Linux下一般使用vi编辑器来编辑文件,vim是它的增强版。vim用于在远程环境下用命令形式对文本进行在线编辑,既可以查看文件也可以编辑文件。
27 0