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

相关文章
|
4月前
|
开发工具
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
|
1月前
|
Java Unix Linux
Linux vi/vim
Linux vi/vim
21 5
|
5月前
|
程序员 Linux 开发工具
Vi和Vim编辑器
Vi和Vim编辑器
|
6月前
|
Linux Shell 开发工具
Linux-- vi / vim 编辑器
Linux-- vi / vim 编辑器
35 0
|
6月前
|
开发工具 Docker 索引
Docker解决没有vi、vim等命令
Docker解决没有vi、vim等命令
365 0
|
6月前
|
开发工具
8.vim(vi)自定义环境变量
8.vim(vi)自定义环境变量
98 2
|
6月前
|
Linux 开发工具
Linux的基础编程——vi/vim编辑器(六)
Linux的基础编程——vi/vim编辑器(六)
66 0
Linux的基础编程——vi/vim编辑器(六)
|
6月前
|
Linux 开发工具
6.vim(vi)多文件编辑
6.vim(vi)多文件编辑
71 1
|
6月前
|
开发工具
7.vim(vi)多窗口功能
7.vim(vi)多窗口功能
91 1
|
6月前
|
开发工具
vi/vim的一些使用技巧
vi/vim的一些使用技巧