vi或vim中的定位命令、全局命令及替换命令

来源:互联网 发布:java跳跃表 编辑:程序博客网 时间:2024/06/05 04:19
1、定位命令

文本编辑时要经常选中一行或多行,vi提供了在末行模式下的定位命令,

常用如下: 

命令               操作说明

n1,n2             表示n1到n2行
.                     表示当前光标所在行
$                    表示指定文件的最后一行
%                   表示整个文件
+n                  从当前行开始向后n行

-n                   从当前行开始向前n行


2、全局命令

 格式: [addr]  g/字符串/命令

 此命令格式表示让系统在范围addr中搜寻能够匹配“字符串”的行,

 然后使用后面的命令对行进行“命令”操作。

 常用命令一般有,p(显示)、g(替换)、d(删除)的等。

 其中:[addr]表示定位命令和检索的范围,省略时表示使用当前行。

 例如:“1,20”  ---从第1行到第20行;

            “%”     ---表示整个文件;

            “.,$”    ---表示从当前行到文件尾。

3、替换命令

  格式:  [addr] s/源字符串/目的字符串/[option]

(1)上述格式中“s”表示其后要进行字符串的替换操作;

(2)对于option选项,它表示对字符串操作的类型,省略option

表示仅对每行第一个匹配串进行替换;

option:

g ---对全局的字符串进行替换;

c ---对全局要替换的字符串进行确认;

p ---表示将替换的结果逐行显示(使用Ctrl + L可恢复)


常见的全局命令和全局替换命令如下表示:

g/字符串/p显示所有带有“字符串”的行

g!/字符串/p显示所有不带有“字符串”的行

n1,n2 g/字符串/p显示从n1到n2的含有“字符串”的行

g/字符串/d删除有“字符串”的行

g!/字符串/d删除有“字符串”的行

g/字符串1/s//字符串2/用“字符串2”全文替换“字符串1”,但每行只替换第一个匹配的字符串

g/字符串1/s//字符串2/g用“字符串2”全文替换“字符串1”(此命令可用下面蓝色字体命令取代)

s/字符串1/字符串2/用“字符串2”替换当前行第一个“字符串1

s/字符串1/字符串2/g用“字符串2”替换当前行所有“字符串1

%s/字符串1/字符串2用“字符串2”替换全文替换“字符串1”,但只替换第一个匹配的

%s/字符串1/字符串2/g用“字符串2”全文替换“字符串1”

g/字符串1/s/字符串2/字符串3/g表示在所有包含“字符串1”的行中,把“字符串2”用“字符串3”来替换


0 0
原创粉丝点击